home *** CD-ROM | disk | FTP | other *** search
/ A.C.E. 2 / ACE CD 2.iso / FILES / DOCS / SBASEP4D.LHA / SuperBaseProDatabaseSystem.doc < prev    next >
Text File  |  1994-11-27  |  94KB  |  2,502 lines

  1.  
  2.  
  3.         SUPERBASE PROFESSIONAL DATABASE MANAGEMENT SYSTEMS
  4.                 SUPPLEMENT 3
  5.  
  6.                 CONTENTS
  7.  
  8. 1. VOLUME 1: NEW FEATURES                    1-1
  9. Keyboard Equivalents                        1-1
  10. Validation Help Dialogs                        1-1
  11. Lookup                                1-3
  12. Process Import                            1-5
  13. Process Export                            1-9
  14. Mail Merge                            1-11
  15. Using Process Comms                        1-12
  16.  
  17. 2. DML KEYWORDS                            1-15
  18. BLANK                                1-15
  19. ENTER                                1-17
  20. EXPORT                                1-20
  21. IMPORT                                1-23
  22. LOAD SET                            1-25
  23. OPEN FIELDS                            1-26
  24. REQUEST                                1-27
  25. SELECT FORM ROW                            1-30
  26. SET EDIT                            1-31
  27. SET HEADING                            1-31
  28. SET NOW                                1-32
  29. SET TODAY                            1-32
  30. UPDATE FORM ROW                            1-33
  31. Commd unfrt Program Control                    1-34
  32. Report Functions                        1-36
  33. COUNT                                1-37
  34. MAX                                1-38
  35. MEAN                                1-38
  36. MIN                                1-39
  37. SD                                1-40
  38. SUM                                1-40
  39. VAR                                1-41
  40.  
  41.                 i
  42.  
  43. 3. FORMS EDITOR                            1-42
  44. Status                                1-42
  45. Listing the Directory                        1-43
  46. Changing the Directory                        1-43
  47. Field Options                            1-44
  48. Attributes                            1-44
  49. Selecting Multiple Objects                    1-45
  50. Printing Forms                            1-46
  51. Generating Reports                        1-46
  52. Transaction Handling                        1-47
  53.  
  54. 4. OTHER FEATURES                        1-54
  55.  
  56. 5. KEY CONTROLS                            1-56
  57.  
  58.                 ii
  59.  
  60. 1. VOLUME 1: NEW FEATURES
  61.  
  62. KEYBOARD EQUIVALENTS
  63. Superbase now provides the following keyboards equivalents for the buttons
  64. on the control panel:
  65.  
  66. BUTTON        KEY
  67. Pause        Space bar
  68. Stop        Ctrl C
  69. First        Shift left arrow (Amiga)/ Home (Atari)
  70. Rewind        Shift up arrow (Amiga)
  71. Previous    Left arrow
  72. Current record    Up arrow/down arrow
  73. Next        Right arrow
  74. Fast Forward    Shift down arrow (Amiga)
  75. Last        Shift right arrow (Amiga)/ Insert (Atari)
  76. Key lookup    ?
  77. Filter        =
  78. External file    *
  79.  
  80. NOTE: THE KEYBOARD EQUIVALENTS TO THE CONTROL PANEL BUTTONS DO NOT OPERATE
  81. WHEN A SUPERBASE INPUT CURSOR IS ACTIVE (WHEN IT IS SHOWN ON SCREEN).
  82.  
  83. VALIDATION HELP DIALOGS
  84. On page 2-19, Volume 1, you will find an explanation of how to create your
  85. own Validation Help Messages. These allow you to define a single line
  86. message which explains exactly why the data is invalid. However, there are
  87. some circumstances in which a single line message is not very helpful. An
  88. example would be the following validation formula which checks the data you
  89. enter against the data in another file:
  90.  
  91. LOOKUP (Stockcode.Invline, Stockcode.Stock) ELSE "Stock code not found in
  92. Stock file"
  93.  
  94. When you enter the code for a stock item into the Invline file, the formula
  95. uses the LOOKUP function to check whether the code exists in the Stock
  96. file. The trouble is that if users make a mistake, it is probably because
  97. they are not sure what the code is for a particular stock item. Ideally,
  98. they should be shown a list of all the stock items in the file together
  99. with their codes.
  100.  
  101.                 S-1
  102.  
  103. This is just what validation help dialogs do. They display a list of all
  104. the acceptable data inputs, and allow the user to select an item by
  105. clicking on it (without having to type it in). To display a help dialog,
  106. you need to use the REQUEST command in your validation formula: For the
  107. example above, the formula would be:
  108.  
  109. LOOKUP (Stockcode.invline, Stockcode.Stock) ELSE 
  110. REQUEST "Stock code not found", "Select another stock code", 20, a%,
  111. Stockcode.Invline, 40, Stockcode.Stock,  Description.Stock
  112.  
  113. When the user enters the wrong stock code, the following dialog will
  114. appear:
  115.  
  116. Stock code not found
  117. Select another stock code
  118. AEG3    AEGIS Draw Plus
  119. AMI1    XT Bridgeboard with 5.25 Diskdr
  120. AMI2    CLI-MATE
  121. AMI3    SUPRADRIVE 20mB Hard Disk
  122. AMI4    SUPRADRIVE 60mB Hard Disk
  123. AMI5    Megaboard 2
  124. AMI6    Amiga SUPERBASE PERSONAL
  125. --------------------------------------------------
  126. AEG4
  127.             OK    CLEAR    CANCEL
  128.  
  129. Provided the first field is an indexed field, type the first letter of the
  130. stock code would bring up a set of stock codes beginning with that letter.
  131.  
  132. Alternatively, you can use the scroll bars or the cursor keys to scroll
  133. down the list. Double clicking on any item in the list automatically places
  134. the item into the field specified (in this example, the Stockcode.Invline
  135. field).
  136.  
  137. Note that for validation formulas you can only use dialog type 20. A full
  138. description of this type of dialog is given on page 27 of this supplement
  139. under the entry for the REQUEST command. Here we will just explain how the
  140. example formula works.
  141.  
  142. The first two parameters for the REQUEST command specify the validation
  143. message. As with other types of dialog, you can leave these blank by
  144. entering two empty strings: i.e., the command would start with:
  145.  
  146. REQUEST "", "", ...
  147.  
  148. The next parameter 20 defines the dialog type. The numeric variable a% is
  149. assigned a value of 1 if the user clicks on OK, and 0 for CANCEL.
  150.  
  151.                 S-2
  152.  
  153. Stockcode.Invline is the name of the field to which the formula is
  154. attached. The item you select will be entered into this field.
  155.  
  156. 40 specifies the width of the dialog in terms of the number of characters.
  157.  
  158. The remaining two parameters - Stockcode.Stock and Description.Stock -
  159. specify the fields which are to be displayed in the dialog. The first field
  160. is the one that will be selected for your data entry and is therefore
  161. compulsory. As an option, you may also specify one or two extra fields to
  162. provide the user with additional information about the data.
  163.  
  164. LOOKUP
  165. In Chapter 2, Volume 1, there is a section which describes the two ways of
  166. using the LOOKUP function in a file definition. The description of the
  167. second way - using LOOKUP for cross-file calculation - is misleading and
  168. needs to be modified. In this section, we first explain the problem and
  169. then give a solution to it.
  170.  
  171. Cross-file calculation uses a calculation formula in combination with
  172. LOOKUP to extract data from another file. The manual gives an example
  173. involving two fields, Stockcode and Unit_Cost, in an Orders file. The
  174. Stockcode field has the following validation formula attached to it:
  175.  
  176. LOOKUP (Stockcode.Orders, Stockcode.Stock)
  177.  
  178. When new data is entered in the Stockcode field, the formula checks that is
  179. exists in the Stock file. In doing this it also makes the record (which
  180. contains the same code) in the Stock file current. The manual suggests that
  181. you can then use the following calculation formula to read the appropriate
  182. unit cost from the Stock file into the Unit_Cost field in the Orders file:
  183.  
  184. Unit_Cost.Stock
  185.  
  186. This formula would be attached to the Unit_Cost field in the Orders file.
  187.  
  188. This approach works perfectly when you enter new data, but it may create
  189. problems when you edit the existing data. Suppose the cursor is active in
  190. the Stockcode field; if you now press the Escape key and enter a new stock
  191. code, the LOOKUP formula will be executed and the correct record in the
  192. Stock file (the secondary file) will be selected. And the value that is
  193. read into the Unit_Cost.orders field without altering the contents of the
  194. Stockcode.Orders
  195.  
  196.                 S-3
  197.  
  198. field, LOOKUP is not executed and the correct record in the secondary file
  199. is not selected. The calculation formula attached to Unit_Cost.Orders
  200. continues to work and extracts data from the Stock file. But because the
  201. current record in the Stock file has not changed since the previous
  202. operation, the data it contains will probably be incorrect for the current
  203. Orders record.
  204.  
  205. The solution to this problem is to include another LOOKUP as part of the
  206. calculation formula using a ternary operator. For example, the formula
  207. attached to Unit_Costl.Orders could be:
  208.  
  209. LOOKUP (Stockcode.Orders, Stockcode.Stock)?
  210. Unit-Cost.Stockcode: 0
  211.  
  212. The effect of this formula is to force a LOOKUP on the Stock file whenever
  213. new data is entered in the Unit_Cost.Orders field. First it checks to see
  214. whether the stock code in the current record in the Orders file exists in
  215. the Stock file. If it does exist, it makes the matching record in the Stock
  216. file current. The condition expressed by the ternary operator has been
  217. satisfied, so the first value after the question mark - i.e. the contents
  218. of Unit_Cost.Stock - is assigned to Unit_Cost.Orders.
  219.  
  220. If the condition is not satisfied, the second value - in this case, a value
  221. of zero - is assigned. It is up to you to decide what action is to be taken
  222. if the LOOKUP is unsuccessful. With string fields, you may want to assign a
  223. text string indicating that an error has occurred, as in:
  224.  
  225. LOOKUP (Stockcode.Orders, Stockcode.Stock)?
  226. Description.Stock: "Error"
  227.  
  228. This formula would be attached to the Description field in the Orders file.
  229. If the stock code does not exist in the Stock file, it assigns the string
  230. "Error" to the field.
  231.  
  232. Alternatively, you could define a formula which left the contents of the
  233. Description field unaltered when an error occurs:
  234.  
  235. LOOKUP (Stockcode.Orders, Stockcode.Stock)?
  236. Description.Stock: Description.Orders
  237.  
  238.                 S-4
  239.  
  240. PROCESS IMPORT
  241. This option has several different applications:
  242. As a file conversion utility it takes a file created in another program and
  243. turns it into a Superbase file. In one step it converts files from Lotus, 
  244. Logistix, or Dbase into Superbase's own format. From other spreadsheet
  245. programs it will also convert files which have been stored in the DIF
  246. format.
  247.  
  248. It allows you to read ASCII data into a Superbase file. Almost all software
  249. packages are capable of producing ASCII files, so you will use this
  250. facility to import files which cannot be directly converted by the first
  251. method.
  252.  
  253. Alternatively, you can produce an ASCII file by exporting the records in a
  254. Superbase file; so Import can also be used to transfer or add records from
  255. one Superbase file to another.
  256.  
  257. The next four sections describe these features in more detail. Then there
  258. are three further sections which explain how to use the Import option,
  259. giving the exact procedure for each type of application.
  260.  
  261. FILE TYPES
  262. Superbase recognizes the following file types:
  263. ASCII delimited files
  264. ASCII fixed length files
  265. DBASE '.dbf' files
  266. LOTUS files with extensions '.wks' or 'wk1'
  267. LOGISTIX '.lgx' files
  268. DIF files
  269.  
  270. In ASCII delimited format, the data is stored as ASCII characters but the
  271. file also uses special characters (separators) to mark the end of each data
  272. item such as a field or a record. When you export records from a Superbase
  273. file, they are stored in this format - in an ASCII delimited file.
  274.  
  275. In ASCII fixed length files each field and record occupies a fixed amount
  276. of space on disk and the data is stored as a continuous string of ASCII
  277. characters.
  278.  
  279. '.dbf' files are the Dbase equivalent of Superbase's '.sbf' files; i.e.,
  280. this is the format used in Dbase II and III for standard database files.
  281.  
  282. The Lotus and Logistix formats are used for spreadsheet data files.
  283.  
  284.                 S-5
  285.  
  286. DIF is a standard format used by many software packages for exporting
  287. files. In this respect it is similar to ASCII format but has the advantage
  288. of allowing the file to be converted to the Superbase format in one step.
  289.  
  290. FILE CONVERSION
  291. Files in the ASCII formats must be read into a pre-defined Superbase file
  292. (see the next section). With the other formats, Import performs the
  293. conversion automatically and creates new '.sbf',  'sbd' and index files in
  294. the current Superbase directory. The new files (which together make up a
  295. single database file) will take the same name as the file that has been
  296. converted.
  297.  
  298. When you import spreadsheet data into a database, each row is taken as a
  299. record, and the individual cells in a row represent fields. Any empty
  300. columns in the spreadsheet are ignored.
  301.  
  302. Clearly, it is not practical to convert a spreadsheet file into a database
  303. file unless the data is structured as a series of repeated rows. However,
  304. Superbase gives you the option of converting just one block in the
  305. spreadsheet grid by specifying a range of cells. You can also use a row of
  306. labels to define the field names in the Superbase file. If the spreadsheet
  307. labels are specified, the fields take the grid's column letter with an
  308. underscore character added to it; i.e., all the cell data in the first
  309. column would be stored in a field named "a_".
  310.  
  311. CONVERTING ASCII FILES
  312. To convert an ASCII file you must first create a new Superbase file to hold
  313. the data. This in turn means that you will need to know the following
  314. information about the ASCII file's structure:
  315.  
  316. The number of fields in a record.
  317. The number of characters in each field. For delimited ASCII files, this
  318. will be
  319. The maximum number of characters in a field.
  320. The type of data each field contains: numeric, string, data, or time.
  321.  
  322. Once you have acquired this information, you must define a Superbase file
  323. (using the New File option on the Project menu) which has the same
  324. structure. For example, if the first field in the ASCII file contains
  325. numeric data, the first file in the Superbase file must be numeric and it
  326. must have the same numeric format. One way of finding out these details is
  327. to display the file on screen.
  328.  
  329. You will then be able count the characters for the different fields and
  330. check the way numeric data is stored. Use the List option on the System
  331. menu to
  332.  
  333.                 S-6
  334.  
  335. display ASCII delimited files. Provided there are not more than 255
  336. characters on a line (i.e., the total number of characters in the record
  337. must not be more than 255), you can also use List for ASCII fixed length
  338. files. If the lines are over this limit, you may be able to check the
  339. format by printing the ASCII file.
  340.  
  341. IMPORTING ASCII FILES: PREREQUISITES
  342. As far as importing the ASCII data is concerned it doesn't matter how or
  343. where the file was created. So you should take the same steps whether you
  344. are transferring data from one Superbase file to another, or converting a
  345. file from another program; the prerequisites are the same:
  346.  
  347. The file into which the data is to be imported is always the current file.
  348. Make sure you have opened this file before you select Import.
  349.  
  350. The fields into which data is to be imported must be of the correct type: a
  351. numeric field for numbers, a date field for dates, etc.
  352.  
  353. Superbase will signal an error if Import tries to store a blank field that
  354. has Required status. Remove such status temporarily with Project Edit.
  355.  
  356. Validation checks will be made on all fields in records created by Import, 
  357. whether they are being imported into or not. Again, you may need to
  358. temporarily remove Validations using Project Edit.
  359.  
  360. You can specify that only certain fields are imported by selecting these
  361. fields in the Open Fields list (select Open Fields from the Project menu).
  362. If you are importing into just the set of open fields, Superbase will
  363. create records with the other fields left blank. Index entries for such
  364. fields may be created, but they too will be blank.
  365.  
  366. If you are importing data from an ASCII delimited file, you may need to
  367. specify which characters it uses as separators (or delimiters). On the
  368. Amiga, the default values are 44 (the comma) for the field separator and 10
  369. (the line feed character) for the record separator. GEM has the same value
  370. for the field separator, but uses two characters for the record separator,
  371. 13 (the carriage return character) and 10(the line feed character). If the
  372. separators in the ASCII file are different from these, select Options on
  373. the Set menu and alter the separator values accordingly.
  374.  
  375.                 S-7
  376.  
  377. USING IMPORT
  378. Whatever the application, the first stage in the Import procedure is always
  379. the same. Select Import from the Process Menu. Superbase displays the
  380. Import dialog. It shows the file type options with selection buttons to the
  381. left of them. Click on the button corresponding to the type of file you
  382. wish to import. After selecting one of the spreadsheet types, you have to
  383. option of specifying the range and a label row. The first value for the
  384. range should be the coordinates for the cell at the top left-hand corner;
  385. the second value determines the bottom right-hand cell. Coordinates are
  386. entered in the conventional way for spreadsheets; for example, A12 or AF30.
  387.  
  388. If the range is not specified, Superbase converts the entire spreadsheet
  389. file. To specify that a row of labels will be used for field names, enter
  390. the number of the row. If you leave this box blank, the field name for a
  391. column of cells is formed by taking the column identifier and adding an
  392. underscore character to it.
  393.  
  394. The next step depends on whether you have selected ASCII files or one of
  395. the other types. For ASCII files there is an interim stage where you can
  396. set a filter on the file that is to be imported.
  397.  
  398. ASCII FILES ONLY
  399. When you click on OK in the Import files type dialog. Superbase displays
  400. the Import Filter dialog:
  401.  
  402. This allows you to determine which records in the ASCII file are to be
  403. imported into the Superbase file. The dialog is the same as the normal
  404. Filter dialog. See Chapter 1, for a detailed explanation of how Filters
  405. work. Build up your Filter Command Line in the normal way and click on OK.
  406.  
  407. SELECTING THE IMPORT FILE
  408. You will now be presented with a file selection dialog. If you have
  409. specified an ASCII format, it lists all the files in the current directory.
  410. Otherwise it only shows files of a particular type; i.e., if dBase is
  411. specified, the dialog lists files with the extension name '.dbf' (but it
  412. doesn't show the extension name).
  413.  
  414. You may also type in a path name and file name for a file in another
  415. directory,  leaving out the extension name if it is not an ASCII file.
  416. Select the file you wish to import or convert and click on OK. For ASCII
  417. files this completes the procedure. If one of the file conversion types has
  418. been specified - dBase, 
  419.  
  420.                 S-8
  421.  
  422. Lotus, Logistix and DIF - Superbase displays a new index dialog where you
  423. can select the field or fields on which the new file is to be indexed.
  424.  
  425. Note that when you import a file under program control, this option is not
  426. available and the file is indexed on the first field.
  427.  
  428. PROCESS EXPORT
  429. This function allows you to convert a Superbase file to a different format
  430. so that it can be loaded into another software package. Generally, you will
  431. export files for use in a spreadsheet or another database program, but you
  432. may also want to load Superbase data into a wordprocessing program or a
  433. desktop publishing package. The only restriction is that the exported file
  434. must be in a format that is recognized by the other program. This should
  435. not be a problem since Export offers the same range of formats or file
  436. types as Import including two ASCII file types. Even if the other program
  437. does not provide any file conversion facilities, it will almost certainly
  438. be able to accept ASCII files. In addition, Export is used to convert data
  439. from a Superbase file into ASCII format so that it can be imported into
  440. another Superbase file.
  441.  
  442. PREPARING TO EXPORT A FILE
  443. Before you select Export, you can specify which fields are to be exported,
  444. using the Open Fields option on the Project menu. In creating the new
  445. records Superbase will only take the data from the fields in the Open
  446. Fields list. If you intend to convert the Superbase file into an ASCII
  447. delimited file, two further preliminary options are available:
  448.  
  449. Field and Record separators. Depending on the application, you may want to
  450. change the default values for the field and record separators. To do this, 
  451. select Options on the Set menu.
  452.  
  453. Quotation marks. The Options dialog in the Set menu allows you to specify
  454. that every field exported is enclosed in quotation marks. This is necessary
  455. if the data contains the character used as a field separator; for example,
  456. addresses,  dates or numbers may contain commas.
  457.  
  458.                 S-9
  459.  
  460. USING PROCESS EXPORT
  461. Make sure that the file you wish to export is the current file. Then select
  462. Export from the Process Menu. Superbase displays the Export file type
  463. dialog. Details of the different file types are given on page 5. Here, we
  464. only need to mention that the fields in ASCII fixed length files are
  465. exported in the format set in the current file definition. If the data in a
  466. field is shorter than the length set in the file definition, Superbase pads
  467. it out with spaces.
  468.  
  469. Click on the button corresponding to the file type required. If you select
  470. a spreadsheet file type, you also have the option of specifying that labels
  471. are included - Superbase will export the field names as a set of labels
  472. along the first row of the spreadsheet data.
  473.  
  474. Now click on the OK button. Superbase displays the Export filter. Use this
  475. to determine which records are to be exported. If you wish to export the
  476. entire file, leave the Filter Command line blank; otherwise, build up the
  477. Command Line in the normal way.
  478.  
  479. When you click on OK, Superbase displays the Export File Name dialog. Enter
  480. the name the file is to have when it has been converted. With ASCII files,
  481. you should supply an extension name; we suggest that you adopt a convention
  482. for naming exported ASCII Files, such as ending each with the extension
  483. '.exp'. If you have specified one of the other file types, you should not
  484. include the extension name: Superbase will add the appropriate extension
  485. for you.
  486.  
  487. Superbase then processes the database file, checking each record to see
  488. whether it matches the conditions set up in the Filter. If it does,
  489. Superbase creates a copy of the data in the currently open fields and
  490. stores it on disk.
  491.  
  492. For program applications, variables can be used in place of fields. The
  493. fixed length option applies to variable names in the same way as to field
  494. names.
  495.  
  496.                 S-10
  497.  
  498. MAIL MERGE
  499. Two enhancements have been made to the Mail Merge option on the Process
  500. menu: variables can now be entered in a text document in place of fields,
  501. and blank lines caused by empty fields are closed up. Variables will be
  502. mainly used in conjunction with a Superbase program so this feature is
  503. covered below in the section headed Programming Mail Merge.
  504.  
  505. BLANK LINES
  506. One of the problems with merging a set of address fields is that in some
  507. records one of the fields may be empty. For instance, the address may not
  508. include a city name. If this line were left blank when the letter was
  509. printed,  there would be an unsightly gap between the street name and the
  510. post code. Superbase solves the problem by checking whether a field (or
  511. variable) is empty or not. If it is empty, the field is not merged and the
  512. fields above and below are printed on consecutive lines.
  513.  
  514. PROGRAMMING MAIL MERGE
  515. The menu-based facility should be sufficient for most of your mailing
  516. requirements. But for more complicated tasks, it is sometimes preferable to
  517. bypass the menu and run Mail Merge under program control. The two features
  518. that make program control possible are:
  519.  
  520. The use of variables in a Text Editor document.
  521. The DML command? TEXT MERGE
  522. Variables have the same function in a Mail Merge document as fields. When
  523. you run Mail Merge, Superbase inserts the value of the variable in place of
  524. its name. But any variables used must be assigned a value in a program or
  525. from the command line before you merge a document. If they are not,
  526. Superbase will display a 'variable not defined' error message.
  527.  
  528. As with fields, variable names must be enclosed by the ampersand character.
  529. Any variable can be used except an array variable. Usually, your text
  530. document will combine fields and variables; but it may also contain
  531. variable names only.
  532.  
  533. The ? TEXT command does two things: it merges variable and field data (from
  534. the current record) with the text file in memory; and it then sends the
  535. text file to the current output device. If the current device is the
  536. screen, ? TEXT MERGE is equivalent to running Mail Merge for just one
  537. record only and displaying the result on screen.
  538.  
  539.                 S-11
  540.  
  541. Superbase also provides the MERGE command but this simply duplicates the
  542. menu option. Using ? TEXT MERGE gives you exact control over the mail merge
  543. process since it allows you to set variables or open a different file while
  544. the merge operation in under way. Combining this with variables in a
  545. program greatly extends the scope of Mail Merge. It makes it possible to
  546. create far more sophisticated applications involving multiple files,
  547. conditional merging or even "boilerplating".
  548.  
  549. USING PROCESS COMMS
  550. Select Comms from the Process menu. Superbase displays the communications
  551. parameters dialog. Before a file can be transferred, both users must set up
  552. all the parameters (except Comms port) in this dialog in the same way. For
  553. each of the following parameters you must select an option by clicking on
  554. its corresponding button:
  555.  
  556. BAUD RATE
  557. This determines the speed at which the file data is transmitted. Five
  558. different baud rates are available:
  559.  
  560. 9600, 4800, 2400, 1200, or 300
  561.  
  562. PARITY
  563. The parity options are:
  564. None  Even  Odd
  565.  
  566. If you select even or odd parity, an additional bit will be used to check
  567. the value of each data word transmitted. Even parity means that the total
  568. sum of the bits in a data word will be an even number; with odd parity, the
  569. total will be an odd number.
  570.  
  571. NUMBER OF BITS PER CHARACTER
  572. The options are:
  573.  
  574. 8  7  6  5
  575.  
  576. STOP BITS
  577. These mark the end of a data word. There can be either 1 or 2 stop bits.
  578.  
  579. COMMS PORT
  580. Select 1 or 2 corresponding to the serial port used for the modem or
  581. connecting cable.
  582.  
  583. TRANSMIT/RECEIVE
  584. Click on the Transmit button if you are sending a file, click on Receive to
  585. receive a file.
  586.  
  587.                 S-12
  588.  
  589. FILE HEADER
  590. When this is set to On, Superbase transmits the file's name and the file is
  591. saved under this name at the receiving end. When File Header has been set
  592. to Off, the receiver specifies the name under which the file is to be
  593. saved. Superbase displays a file selection dialog before transmission takes
  594. place. If you are at the receiving end of the comms link, you must then
  595. enter a name for the file or select an existing name from the dialog panel.
  596. Note that when the file is transmitted, the last 128 byte block will be
  597. padded out with zeros.
  598.  
  599. TRANSFERRING A FILE
  600. When both users have set the parameters in the comms dialog, they should
  601. click on OK. If you have selected Receive, the computer will then wait for
  602. a file to be transferred from the other end of the link.
  603.  
  604. If you are transferring a file, you will be presented with a file selection
  605. dialog for the files in the current directory. Select the file you wish to
  606. send and click on OK. Superbase will then proceed to transmit the file.
  607.  
  608. During transmission, a further dialog appears on both machines showing the
  609. status of the transfer. It displays the number of blocks successfully
  610. transmitted or received, and indicates errors. Superbase uses the Xmodem
  611. protocol for file transfer. Each block of file data is checked for errors
  612. as it is transmitted. If errors occur, the block is transmitted again.
  613.  
  614. When the transfer is completed, the file is stored on disk (at the
  615. receiving end) under the same name with which it was transmitted.
  616.  
  617. NOTE: If you are transmitting files over the public telephone network at a
  618. baud rate higher than 1200, you may experience problems with file transfer.
  619. In order to reduce the number of errors, you should select a lower baud
  620. rate.
  621.  
  622. THE TRANSFER STATUS DIALOG
  623. During file transfer, Superbase displays a dialog showing the status of the
  624. transmission. The top of the dialog indicates whether the user is
  625. transmitting or receiving and, if the File Header has been set to On, it
  626. also gives the file name. Below this, there are three headings: Blocks,
  627. Count, and Errors. Blocks shows the number of blocks that are still to be
  628. transmitted, Count gives the number that have been successfully
  629. transmitted.
  630.  
  631.                 S-13
  632.  
  633. REMOTE TRANSMISSION
  634. The procedure for sending files via modem is as follows:
  635.  
  636. 1. Enter the receiver's number in the Autodial box in the comms dialog.
  637. 2. Select Transmit.
  638. 3. Set the other comms parameters for baud rate, port number, etc.
  639. 4. Click on OK.
  640. 5. Select the file or files (using wild cards) for transmission.
  641.  
  642. Notice that there is no Remote/Local option in the comms dialog. Provided
  643. the modem is on line and the DCD line is off, Superbase detects that Remote
  644. transmission is required and proceeds with the operation as soon as you
  645. have selected a file.
  646.  
  647. At the receiving end, you must select Receive and then set up the other
  648. parameters so that they have the same values as in the transmitter's comms
  649. dialog (although the port number does not need to be the same). If your
  650. modem has an autoanswer facility, this must be turned on. If it doesn't
  651. have autoanswer, the ring indicator line from the modem must be connected
  652. to the computer's RS 232 port.
  653.  
  654. The next step is to click on OK in the comms parameters dialog. If the File
  655. Header option has been set to Off, you will first be presented with the
  656. file selection dialog where you can enter the name under which the file is
  657. to be saved. Superbase will then display the "busy" symbol (an hour glass
  658. icon) and will wait to be contacted by the transmitter. If the File Header
  659. option has been set to On, transmission will proceed as soon as the comms
  660. link has been established.
  661.  
  662.                 S-14
  663.  
  664. 2 DML KEYWORDS
  665. This part of the supplement gives the keyword entries for the following new
  666. commands and functions:
  667.  
  668. LOAD SET
  669. SELECT FORM ROW
  670. SET EDIT
  671. SET HEADING
  672. SET NOW
  673. SET TODAY
  674. UPDATE FORM ROW
  675. Comms commands
  676. Report functions
  677.  
  678. The last two sets of keywords are covered in separate sections under the
  679. headings Comms under Program Control, page 34, and Report Functions, page
  680. 36. Also provided here are the revised entries for keywords whose syntax
  681. has been amended or expanded:
  682.  
  683. BLANK 
  684. ENTER
  685. EXPORT
  686. IMPORT
  687. OPEN FIELDS
  688. REQUEST
  689.  
  690. BLANK
  691. Purpose
  692. Creates a blank record in memory.
  693.  
  694. SYNTAX
  695. BLANK [FORM]/ [DUPLICATE] [FILE sbfname]
  696.  
  697. COMMENTS
  698. When you want to create a new record under program control, issuing a BLANK
  699. statement is the first step in the process. It sets up an empty record
  700. ready for data entry. There are several ways in which you can then enter
  701. data into the record's fields.
  702.  
  703.                 S-15
  704.  
  705. Using BLAND with ENTER allows the user to type in the data for a new record
  706. from the keyboard. Together these two commands have the same effect as the
  707. RECORD NEW option in the RECORD menu. Alternatively, you can enter data
  708. from within a program, by assigning it directly to the fields in the new
  709. record. Typically, this would be the method you used to create new records
  710. by reading data in from another file on disk.
  711.  
  712. The FORM parameter is used with a multi-file form; BLANK FORM creates
  713. records for each file represented in the form. When a form is open but the
  714. FORM parameter is not included, BLANK only creates a blank record for the
  715. current file.
  716.  
  717. DUPLICATE is the program equivalent of Duplicate on the Record menu. It
  718. creates a copy of the current record and allows the user to create a new
  719. record by editing the copy. This parameter can only be used with a file,
  720. not a form. With the FILE parameter, you can create a blank record in a
  721. file which is open but not current.
  722.  
  723. EXAMPLES
  724.  
  725. 1 BLANK
  726. 2 BLANK FILE "abc"
  727. 3 BLANK
  728.   ENTER
  729.   STORE
  730. 4 BLANK
  731.   Firstname.address="John"
  732.   Lastname.address="Smith"
  733.   STORE
  734. 5 BLANK DUPLICATE
  735.   ENTER
  736.   STORE
  737.  
  738. The first example creates a new record in the current file. Example 2
  739. creates a new record in another open file. Example 3 creates a new record
  740. in the current file, and allows the user to enter data in the record; then
  741. it saves the record on disk. Example 4 creates a new record, and enters
  742. data into the fields Firstname and Lastname; then saves the record on disk.
  743. Example 5 allows the user to create a new record by editing the current
  744. record.
  745.  
  746.                 S-16
  747.  
  748. ENTER
  749. Purpose
  750. Allows the user to enter data in the current file or to edit the data in a
  751. record.
  752.  
  753. SYNTAX
  754. ENTER [field] [ROW nexpr1]]/[nexpr2] [TO field2 [ROW nexpr3]] /[,nexpr4]
  755.  
  756. COMMENTS
  757. ENTER works on the current file. Used on its own, it is equivalent to the
  758. Record menu option Edit. It displays the current record and allows you to
  759. edit it field by field, starting with the first field that is not Read
  760. Only. In effect,  ENTER temporarily hands over control from DML to
  761. Superbase itself. When you press Return after the last field in a record or
  762. when you move the cursor down to the bottom of the record, control is
  763. transferred back to DML.
  764.  
  765. The parameters for this command can only be used with a form. When a form
  766. is open and field1 or nexpr2 is specified without any further parameters,
  767. Superbase restricts the editing to just one field. You can supply either a
  768. field name or a field number where the number corresponds to the field's
  769. position in the field order; i.e. the entry order which was set when the
  770. form was created. After executing an ENTER command followed by field or
  771. nexpr2, Superbase makes the editing cursor active in the field specified;
  772. control is transferred back to DML when the user presses Return.
  773.  
  774. With TO or nexpr4, you can specify that a range of fields is available for
  775. editing. TO must be followed by a field name and restricts editing to the
  776. fields in the range field1 to field2. nexpr4 gives the number of fields
  777. that can be edited - from field1 or nexpr2 onwards. As an example, suppose
  778. you wanted to restrict data entry from four fields from Firstname through
  779. to City. Assuming Firstname is number 2 in the form's entry order and City
  780. is number 5,  you could use any of the following commands:
  781.  
  782. ENTER Firstname TO City
  783. ENTER 2 TO City
  784. ENTER 2, 4
  785. ENTER 2 TO City
  786. ENTER Firstname, 4
  787.  
  788.                 S-17
  789.  
  790. Superbase would make the cursor active in the Firstname field and allow you
  791. to enter data or edit Firstname and the next three fields.
  792.  
  793. You may want to specify a starting point without restricting yourself to a
  794. given number of fields. To do this, enter 0 as the second numeric
  795. parameter; e.g.:
  796.  
  797. ENTER 2, 0
  798.  
  799. or
  800.  
  801. ENTER Firstname, 0
  802.  
  803. Now you will be able to edit any field in the form starting from field 2.
  804. Control will be transferred to DML when you press Return in the last field.
  805. The ROW parameter is used for entering data in transactions. nexpr1
  806. specifies the number of the row at which you wish to start entering data,
  807. nexpr3 specifies the last row.
  808.  
  809. Note that ENTER can also be used to edit form calculations. But in this
  810. case you should supply the calculation's order number, not the calculation
  811. name. Thus suppose you wished to enter a new value in a calculation named
  812. Calc1% which had the order number 7; the correct command to do this would
  813. be:
  814.  
  815. ENTER 7
  816.  
  817. Because calculations on a form are treated as variables by DML, the
  818. command:
  819.  
  820. ENTER CALC1%
  821.  
  822. would only work correctly if Calc1% happened to contain the value of 7.
  823. When used in conjunction with BLANK, ENTER is equivalent to the Record menu
  824. option New, and allows you to enter data into a new record.
  825.  
  826. This command does not save a record; to save a new or edited record use the
  827. command STORE.
  828.  
  829. EXAMPLES
  830.  
  831. 1 OPEN FILE "aaa"
  832.   ASK "Record to edit"; x$
  833.   SELECT KEY x$
  834.   ENTER
  835.   STORE
  836.  
  837.                 S-18
  838.  
  839. 2 OPEN FILE "aaa"
  840.   BLANK
  841.   ENTER
  842.   STORE
  843. 3 ENTER Lastname
  844. 4 ENTER 4, 3
  845. 5 ENTER Cuscode TO Quantity
  846. 6 ENTER Cuscode ROW 3 TO Quantity ROW 5
  847.  
  848. Example 1 shows how to enter an existing record in order to edit it.
  849. Example 2 creates a new record. Example 3 restricts editing to the Lastname
  850. field. In example 4, fields (or calculations) 4 to 6 in the form's field
  851. order can be edited. Example 5 restricts editing to the fields from Cuscode
  852. to Quantity. The last example assumes there are transactions on the form
  853. and restricts editing to the fields in rows 3, 4 and 5.
  854.  
  855.                 S-19
  856.  
  857. EXPORT
  858. Purpose
  859. Exports to an external file from the current file.
  860.  
  861. SYNTAX
  862. The syntax for EXPORT varies according to the type of file being exported:
  863.  
  864. ASCII files
  865. EXPORT [FILEsbfname] [INDEXindex] [TO]filename
  866. [WHERE conditions/ASK] [USING params]/[USING FILE]
  867.  
  868. dbase files
  869. EXPORT [FILEsbfname] [INDEXindex] [TO]filename
  870. [WHEREconditions/ASK] USING "2"/"3"
  871.  
  872. Spreadsheet files
  873. EXPORT [FILEsbfname} [TO]filename
  874. [WHEREconditions/ASK] [USING LABELS]
  875.  
  876. COMMENTS
  877. This command is the program equivalent of the EXPORT option in the PROCESS
  878. menu. It converts a Superbase file to a specified format and stores it on
  879. disk. The filename parameter gives the name under which the file will be
  880. stored after it has been exported. It is this parameter that determines the
  881. file type. To export a file in dBase format, you must use the '.dbf'
  882. extension name. You must also specify whether it is to take the format for
  883. dBase II or dBase III by following the EXPORT command with the USING
  884. parameter. USING "2" exports in dBase II format, USING "3" exports in dBase
  885. III format. For example:
  886.  
  887. EXPORT "address.dbf" USING "3"
  888.  
  889. This converts the current Superbase database file to dBase III format. To
  890. convert a file to a spreadsheet format, you must give it one of the
  891. following extension names:
  892.  
  893. .wks (for Lotus files)
  894. .lgx (for Logistix files)
  895. .dif (for DIF files)
  896.  
  897.                 S-20
  898.  
  899. If you specify the USING LABELS option for spreadsheet files, the field
  900. names in the Superbase file will be exported as a row of labels.
  901.  
  902. To export a file in ASCII format, choose a different extension name from
  903. the ones listed above. Alternatively, you can omit the extension name for
  904. ASCII files.
  905.  
  906. Details of the syntax for exporting files in ASCII format are given at the
  907. end of this section. The next two parameters are used with all file types:
  908.  
  909. FILE sbfname specifies the Superbase file which is to be converted. If this
  910. parameter is not given, EXPORT takes data from the current open file.
  911.  
  912. WHERE conditions allows you to creates a filter to determine which records
  913. are copied to the export.conditions is set up in the same way as the
  914. command string in the Filter dialog. For an explanation of how the ASK
  915. parameter is used, see the entry for SELECT WHERE.
  916.  
  917. If INDEX indexname is not specified, the command exports records in the
  918. order of the current index. Use INDEX to specify a different order. This
  919. parameter is not available if you are exporting a spreadsheet file.
  920.  
  921. ASCII FILES
  922.  
  923. There are two ASCII file formats, ASCII delimited and ASCII fixed length.
  924. To select the ASCII fixed length format, you must enter the USING FILE
  925. parameter at the end of the command.
  926.  
  927. For ASCII delimited files, you may select the USING parameters option. This
  928. allows you to change the Export/Import parameters as specified in the
  929. Options dialog on the Set menu. These determine which characters Superbase
  930. used to separate fields and records in the ASCII file. You can also specify
  931. whether text fields are exported with or without quotation marks around
  932. them. If you do not specify USING parameters, Superbase will use the
  933. parameters which are set in the Options dialog.
  934.  
  935. USING takes three parameters, each enclosed by quotation marks and
  936. separated by commas. For example:
  937.  
  938.     USING "&", "$$", "0"
  939.  
  940. The first two parameters specify the field separation characters and the
  941. record separation characters. As in the Options dialog, you can define a
  942. separator using one character or two characters. The third parameter must
  943. be either 0 or 1; 0 for no quotation marks, 1 to include quotation marks.
  944.  
  945.                 S-21
  946.  
  947. If you want to use a non-printing character-the carriage return character
  948. or the line feed character, for example-as a separator, you need to enter
  949. its ASCII code with the CHR$ function. For example:
  950.  
  951.     USING "&", CHR$(13)+CHR$(10), "0"
  952.  
  953. defines the record separator as the carriage return character followed by
  954. the line feed character.
  955.  
  956. EXAMPLES
  957.  
  958. 1 EXPORT "aaa.dbf" USING "2"
  959. Exports the current file converting it to the dbase file "aaa.dbf" in the
  960. format for dBase II.
  961.  
  962. 2 EXPORT FILE "aaa" INDEX fielda TO "aaa.wks" WHERE
  963.   (datefield) < DAYS ("29 Apr 87")
  964. Exports records in the file "aaa" whose date field value is less than 29th
  965. April 1987. Stores them in Lotus file format with the name "aaa.wks".
  966.  
  967. 3 EXPORT FILE "aaa" TO "aaa.exp" USING "&", "##", "1"
  968. Exports the data in the file "aaa" to ASCII delimited the "aaa.exp", using
  969. the separators specified.
  970.  
  971. 4 EXPORT "aaa.exp" WHERE ASK USING FILE
  972. Exports the current file to the ASCII fixed length file "aaa.exp". When the
  973. commands is executed, ASK brings up a filter dialog where the user can
  974. enter the export filter conditions.
  975.  
  976.                 S-22
  977.  
  978. IMPORT
  979. Purpose
  980. Converts dBase and spreadsheet files into Superbase files, imports an ASCII
  981. file into an open file.
  982.  
  983. SYNTAX
  984. The syntax for this command varies according to type of file being
  985. converted or imported.
  986.  
  987. ASCII FILES
  988. IMPORT filename [TO FILEsbfname] [WHEREcondition / ASK]
  989. [USINGparameters] / [USING FILE]
  990.  
  991. dBase files
  992. IMPORTfilename.dbf
  993.  
  994. Spreadsheet files
  995. IMPORTfilename.lbx/.wks/.wks/.dif [USINGstrexpr1, strexpr2 [strexpr3]]
  996.  
  997. COMMENTS
  998. The extension name given as part of the filename parameter specifies the
  999. type of file that is to be read from disk. It also determines whether the
  1000. file will be imported into an existing or converted into a new Superbase
  1001. file.
  1002.  
  1003. dBase files
  1004. To convert a dBase file, you must supply the '.dbf' extension - no further
  1005. parameters are required. The file will be converted to Superbase database
  1006. file with an index on the first field.
  1007.  
  1008. Spreadsheet files
  1009. To convert a spreadsheet file, use one of the following extensions:
  1010.  
  1011. .lgx (for Logistix files)
  1012. .wks or .wk1 (for Lotus files)
  1013. .dif (for DIF files)
  1014.  
  1015. The first two parameters following USING specify the range of cells that is
  1016. to be converted. strexpr1 gives the address of the cell in the top
  1017. left-hand corner, strexpr2 gives the address of the bottom right-hand cell.
  1018. If the USING parameters are not entered, Superbase converts the entire
  1019. spreadsheet file.
  1020.  
  1021. With strexpr3, you can give the number of a row in the spreadsheet data
  1022. which contain labels. These will then be taken as the Superbase file's
  1023. field names.
  1024.  
  1025.                 S-23
  1026.  
  1027. If you leave this parameter out, the field names will be formed by taking
  1028. the spreadsheet's column identifiers and adding an underscore character to
  1029. them; i.e., data in column AB will be stored in field AB_.
  1030.  
  1031. ASCII files
  1032. With ASCII files, the data is imported into the current file or another
  1033. open file specified with the TO FILE parameters. To indicate an ASCII file
  1034. you can use any (or no) extension name except those listed above.
  1035.  
  1036. Superbase can import two types of ASCII file, ASCII fixed length and ASCII
  1037. delimited. The USING FILE parameter indicates that the file to be imported
  1038. is ASCII fixed length. If this is omitted, it is assumed that the file is
  1039. ASCII delimited.
  1040.  
  1041. With ASCII delimited files, USING parameters can be used to change the
  1042. default Import/Export values set in the Options dialog - i.e.to indicate
  1043. which characters are used for field and record separators, and whether the
  1044. field data is enclosed in quotation marks or not. For a description of USING
  1045. and the parameters it takes, see EXPORT.
  1046.  
  1047. With both ASCII file types, WHERE conditions allows the user to add a
  1048. filter to the IMPORT command. condition is a set up in the same way as the
  1049. command line in the Filter dialog. For details of the ASK parameters, see
  1050. SELECT WHERE.
  1051.  
  1052. EXAMPLES
  1053.  
  1054. 1 IMPORT "aaa.exp"
  1055. Imports the ASCII delimited file "aaa.exp" into the current open file.
  1056.  
  1057. 2 IMPORT "aaa.exp" TO FILE "aaa" WHERE (datefield) > DAYS ("29Apr87") USING FILE
  1058. Imports the ASCII fixed length file "aaa.exp" into the Superbase file
  1059. "aaa",  taking only the records whose date field value is later than 29th
  1060. April 1987.
  1061.  
  1062. 3 IMPORT "aaa.exp" WHERE ASK USING CHR$(44), CHR$(13), "0"
  1063. Imports the ASCII delimited file "aaa.exp" into the current open file, and
  1064. specifies that the file uses the comma and carriage return characters as
  1065. field and record separators. It also indicates that the field data is not
  1066. enclosed in quotation marks. The WHERE ASK parameter brings up a filter
  1067. dialog when the command is executed.
  1068.  
  1069.                 S-24
  1070.  
  1071. 4 IMPORT "aaa.dbf"
  1072. Converts the dBase file "aaa.dbf" into a Superbase file named "aaa.sbf".
  1073.  
  1074. 5 IMPORT "aaa.lgx"
  1075. Converts the Logistix file "aaa.lgx" into a Superbase file named "lgx".
  1076.  
  1077. 6 IMPORT "aaa.wks" USING "a1", k50", "1"
  1078. Converts the Lotus file "aaa.wks" into a Superbase file named "aaa.sbf".
  1079. The USING parameters specify that only the cells in the range a1 to k50 are
  1080. converted, and that the labels in row 1 are used as field names. Assuming
  1081. that every row and column within the range is occupied, the Superbase file
  1082. will have 50 records in it, with 11 fields to a record.
  1083.  
  1084. LOAD SET
  1085. Purpose
  1086. Loads the parameters file from current directory.
  1087.  
  1088. SYNTAX
  1089. LOAD SET
  1090.  
  1091. COMMENTS
  1092. The parameters file is called 'sb.par'. It contains details of a number of 
  1093. user-defined preferences and options governing a variety of Superbase
  1094. functions. Most of them are set in the Options dialog, but it also stores
  1095. other items such as the label settings, numeric format and date format. The
  1096. current parameters are stored on disk in the current directory (or in a
  1097. directory specified by the parameter file path) when you click on OK in the
  1098. Options dialog or with the command SAVE SET.
  1099.  
  1100. The parameters file for the current directory is automatically loaded when
  1101. you change to that directory. Typically LOAD SET would be used to restore a
  1102. set of parameters after some of them have been altered, for example, to
  1103. restore the previous numeric format after it has been changed using the
  1104. NUMBASE command. You may also want to create multiple 'sb.par' files for
  1105. different applications storing them under different names in a special
  1106. directory. After copying one of them to the current directory and changing
  1107. its name back to 'sb.par', you would then use the LOAD SET command to
  1108. activate its parameters.
  1109.  
  1110.                 S-25
  1111.  
  1112. EXAMPLES
  1113.  
  1114. 1 COPY "\Params\param3" TO "\GEMAPPS\SBRO\DEMO\sb.par"
  1115.  
  1116.   LOAD SET
  1117. Copies the file "param3" to the current directory and changes its name to
  1118. "sb.par". Then loads the file.
  1119.  
  1120. OPEN FIELDS
  1121. Purpose
  1122. Specifies which fields are displayed.
  1123.  
  1124. Syntax
  1125. OPEN FIELDS [FILEsbfname] [fieldlist] / [ADDfieldlist]
  1126.  
  1127. COMMENTS
  1128. This command is the program equivalent of the Open Fields option on the
  1129. Project Menu.
  1130.  
  1131. When used on its own or with the FILE parameter, OPEN FIELD loads the
  1132. file's field list from disk - the field list for the current file is saved
  1133. using the Save File option (i.e., it is stored with the file definition).
  1134. The field list does not take effect until the current record is
  1135. redisplayed.
  1136.  
  1137. To specify under program control which fields are to be open, use the
  1138. fieldlist parameter. It should consist of a list of field names separated
  1139. by commas. Use the ADD parameter to add other fields to the existing set.
  1140.  
  1141. To remove any restrictions on which fields are shown, use the CLOSE FIELDS
  1142. command.
  1143.  
  1144. EXAMPLES
  1145.  
  1146. 1 OPEN FIELDS FILE "Address" Firstname, Lastname, Country, City
  1147. 2 OPEN FIELDS: VIEW
  1148. 3 OPEN FIELDS ADD Code
  1149.  
  1150.                 S-26
  1151.  
  1152. REQUEST
  1153. Purpose
  1154. Displays a Superbase dialog.
  1155.  
  1156. SYNTAX
  1157. REQUEST text1, text2, type [nvar[strvar[len]]]
  1158.  
  1159. COMMENT
  1160. REQUEST allows you to select one of Superbase's dialogs and display it on
  1161. screen. To some extent you can also customize a dialog to your own
  1162. requirements. Thus you can place a title in box, and you can specify the
  1163. text string that initially appears in the dialog's command line or
  1164. selection box. For certain dialogs, it is also possible to specify the
  1165. length of the box. text1 and text2 are the first and second line of the
  1166. dialog title. They must be included although they can be "". The maximum
  1167. length for each line is 50 characters.
  1168.  
  1169. type is the dialog type. It defines the type of dialog according to the
  1170. table shown below.
  1171.  
  1172. nvar is a numeric variable. It returns a value of 1 if OK is selected and
  1173. there is an entry into the string dialog. If CANCEL is selected or there is
  1174. no entry into the string dialog, it return 0.
  1175.  
  1176. strvar can be used with dialogs which have a string entry box and has two
  1177. functions:
  1178.  
  1179. It is used to place a default value into the string box, i.e., the text
  1180. string in strvar is entered into the string box when the dialog is
  1181. displayed. It returns the string which the user enters in the box.
  1182.  
  1183. len specifies the length of the string box (where appropriate). This is
  1184. particularly useful for the information dialogs. For dialog type 5 to 16 it
  1185. is not needed as Superbase sets the box to the maximum file name length of
  1186. 50 characters. For dialog type 4 len must be specified.
  1187.  
  1188.                 S-27
  1189.  
  1190. Types of Dialogs available:
  1191.  
  1192. TYPE    DIALOG            BUTTONS
  1193. 0    string            OK
  1194. 1    string            OK CANCEL
  1195. 2    string            OK
  1196. 3    string            OK CANCEL
  1197. 4    string            OK CLEAR CANCEL
  1198. 5    Current file fields    OK CLEAR CANCEL
  1199. 6    Open Fields list    OK CLEAR CANCEL
  1200. 7    Indexed fields        OK CLEAR CANCEL
  1201. 8    Non indexed fields    OK CLEAR CANCEL
  1202. 9    Field Info        OK CLEAR CANCEL
  1203. 10    Open Database Files    OK CLEAR CANCEL
  1204. 11    Database Files        OK CLEAR CANCEL
  1205. 12    Program Files        OK CLEAR CANCEL
  1206. 13    Text Files        OK CLEAR CANCEL
  1207. 14    Query Files        OK CLEAR CANCEL
  1208. 15    Update Files        OK CLEAR CANCEL
  1209. 16    Function Key Files    OK CLEAR CANCEL
  1210. 17    Directory Listing    OK CLEAR CANCEL
  1211. 18    Subdirectory Listing    OK CLEAR CANCEL
  1212. 19    Form Files        OK CLEAR CANCEL
  1213. 20    Record Selection    OK CLEAR CANCEL
  1214. 21    Same as dialog 1 but accepts Return key for OK
  1215. 22    Same as dialog 2 but accepts Return key for Cancel
  1216. 23    Same as dialog 4 but does not echo keyboard input
  1217.  
  1218. Note that a database file must be open before dialogs 5 to 9 can be
  1219. selected.
  1220.  
  1221. Dialog type 20 has a different syntax to the other types:
  1222. REQUEST text1, text2, type, nvar, field1/var, len, field2, [field3[field4]]
  1223. The first two parameters have the same function as with other dialog types:
  1224. they give the first and second lines of the dialog title.type can be any
  1225. numeric expression with a value of 20.nvar is a numeric variable which
  1226. returns 1 if OK is clicked, 0 for Cancel.
  1227.  
  1228. The next parameter - field1/var - may be a field or a variable. If a field,
  1229. it will usually be the name of a field in the current file but it can also
  1230. be a field in another open file. Whatever is entered in the dialog is
  1231. stored in the field or variable. The fields specified with field parameters
  1232. 2 to 4 can also belong to any open file but it must be the same file.len
  1233. specifies the width of the dialog in number of characters.
  1234.  
  1235.                 S-28
  1236.  
  1237. When you execute this command, it list the contents of field2 for each
  1238. record in the file. If field3 and field4 are specified, the contents of
  1239. these fields will also be displayed in the dialog to the right of field2.
  1240.  
  1241. Superbase retrieves the field2 data using the current value of field1 or
  1242. var as an index key or a 'seed'. Provided field2 is an indexed field, the
  1243. list of fields in the dialog will start with the field before the one that
  1244. matches this key. If it is not indexed, the field data is listed in the
  1245. order of the current index.
  1246.  
  1247. When you select one of the field2 values from the dialog and click on OK, 
  1248. Superbase stores it in the field or variable specified with the field1 /var
  1249. parameter.
  1250.  
  1251. EXAMPLES
  1252. 1 REQUEST "", "", 2, a%
  1253. 2 a%=0: a$="": REM initialize nvar and strvar
  1254.   REQUEST "Select a program", "", 5, a%, a$, 32
  1255.   IF a%=0 then ? "OK so you do not want to run a program": END
  1256.   CHAIN a$
  1257. 3 REQUEST "Select a customer code", "", 20, a%, Cuscode.Invhdr, 40, 
  1258.   Cuscode.Customer, Firstname.Customer, Lastname.Customer.
  1259.  
  1260. NOTES
  1261. Example 1 puts an OK dialog up for 2 seconds. Example 2 allows the user to
  1262. select a program to run. Example 3 illustrates the use of dialog type 20.
  1263. Taking data from the Customer file, the dialog lists the names and customer
  1264. codes of the individuals in the file. When the user selects a customer code
  1265. from the dialog, it is stored in the Cuscode field in current record from
  1266. the Invhdr file.
  1267.  
  1268.                 S-29
  1269.  
  1270. SELECT FORM ROW
  1271. Purpose
  1272. Selects the current transaction row.
  1273.  
  1274. SYNTAX
  1275. SELECT FORM ROW nexpr
  1276.  
  1277. COMMENTS
  1278. This command is used with transaction forms to select one from a number of
  1279. transaction lines. Transaction data on the form is held independently of
  1280. record data. Consequently, it is necessary to select the transaction you
  1281. wish to deal with in order to ensure that the record data reflects the
  1282. transaction data. Once you have identified a transaction with SELECT FORM
  1283. ROW, any reference to a field involved in transactions will refer to the
  1284. instance of that field in that transaction. See UPDATE FORM, ENTER, FORM.
  1285.  
  1286. Note that in selecting a transaction you also select the record which holds
  1287. the data for the fields in the transaction; in other words, you make it the
  1288. current record.
  1289.  
  1290. EXAMPLES
  1291.  
  1292. 1 x%=COUNT quantity.invline
  1293.   FOR n%-1 to x%
  1294.   SELECT FORM ROW n%
  1295.   ? quantity.invline
  1296.   NEXT
  1297.  
  1298. NOTES
  1299. The example displays all the quantity entries in the current form.
  1300.  
  1301.                 S-30
  1302.  
  1303. SET EDIT
  1304. Purpose
  1305. Sets auto-entry to the Program Editor on or off.
  1306.  
  1307. SYNTAX
  1308. SET EDIT ON/OFF
  1309.  
  1310. COMMENTS
  1311. Normally when a program is interrupted - when CTRL C or the Stop button has
  1312. been clicked, or when an error has occurred - Superbase opens the Program
  1313. Editor window and makes the cursor active. SET EDIT OFF switches this
  1314. feature off; if the window has been closed beforehand, it will remain
  1315. closed when the program is stopped.
  1316.  
  1317. SET HEADING 
  1318. Purpose
  1319. Sets the title for the Superbase window.
  1320.  
  1321. SYNTAX
  1322. SET HEADING strexpr
  1323.  
  1324. COMMENTS
  1325. The title bar for the Superbase window normally shows the name of the
  1326. current open file. SET HEADING allows you to replace this with your own
  1327. heading. To restore the original heading, use SET HEADING "".
  1328.  
  1329. EXAMPLES
  1330.  
  1331. 1 SET HEADING "Invoice Form"
  1332. 2 SET HEADING ""
  1333.  
  1334.                 S-31
  1335.  
  1336. SET NOW
  1337. Purpose
  1338. Sets the time held in the system variable NOW.
  1339.  
  1340. SYNTAX
  1341. SET NOW strexpr
  1342.  
  1343. COMMENTS
  1344. strexpr must contain a time in the current time format as set with Date
  1345. format in the Set menu or with the DATABASE command.
  1346.  
  1347. EXAMPLES
  1348.  
  1349. 1 SET NOW "14:35:08"
  1350. 2 DATABASE "hh:mm:ss.s"
  1351.   SET NOW "23:59:59.9"
  1352.  
  1353. SET TODAY
  1354. Purpose
  1355. Sets the date held in the system variable TODAY.
  1356.  
  1357. SYNTAX
  1358. SET TODAY strexpr
  1359.  
  1360. COMMENTS
  1361. strexpr must contain a date in the current date format as set with DATABASE
  1362. or with Date format in the Options menu.
  1363.  
  1364. EXAMPLES
  1365.  
  1366. 1 SET TODAY "15May1988"
  1367. 2 DATABASE "mm-dd-yy"
  1368.   SET TODAY "12-31-87"
  1369.  
  1370.                 S-32
  1371.  
  1372. UPDATE FORM ROW
  1373. Purpose
  1374. Copies data from the current record or records to a specified transaction
  1375. line.
  1376.  
  1377. SYNTAX
  1378. UPDATE FORM ROW nexpr
  1379.  
  1380. COMMENTS
  1381. This command is only used transaction forms. It updates the fields in the
  1382. transaction line specified with nexpr taking the data from the current
  1383. record. To redisplay use the FORM command.
  1384.  
  1385. See SELECT FORM, ENTER, FORM.
  1386.  
  1387. EXAMPLES
  1388.  
  1389. 1 BLANK FORM
  1390.   SELECT FIRST
  1391.   FOR n%=1 TO 10
  1392.   UPDATE FORM ROW A n%
  1393.   SELECT NEXT
  1394.   NEXT
  1395.   FORM
  1396.  
  1397. NOTES
  1398. The example program fills the first ten lines in the transaction form with
  1399. data from the first ten records in the current file - it assumes that the
  1400. fields in the file are the same as those on the form.
  1401.  
  1402.                 S-33
  1403.  
  1404. COMMS UNDER PROGRAM CONTROL
  1405. DML provides seven commands for handling communications under program
  1406. control. The first five can be used for transmitting and receiving text
  1407. strings rather than entire files. To see how these commands allow you to
  1408. communicate with another Superbase user in 'chat' mode, you are recommended
  1409. to look at the Comms program supplied on the demonstration data disk.
  1410.  
  1411. The last two comms commands are the program equivalents of the Comms menu
  1412. option and used for file transfer under the XMODEM protocol.
  1413.  
  1414. 1. OPEN COMMS [USING parameters]
  1415. This command opens the communications channel must be executed before
  1416. attempting file or text transfer. USING can take up to eight parameters,
  1417. each separated by a comma. The parameters correspond to the ones in comms
  1418. dialog, as follows:
  1419.  
  1420.     param1: Port number (either 0 or 1)
  1421.     param2: Baud Rate (9600/2400/1200/300)
  1422.     param3: Parity (0/1/2)
  1423.     param4: Stop Bit (either 1 or 2)
  1424.     param5: Word Length (5/6/7/8)
  1425.     param6: Transmit/Receive (1 for Transmit, 0 for Receive)
  1426.     param7: File Header (0 for Off, 1 for On)
  1427.     param8:Autodial Number
  1428.  
  1429. The Autodial number must be supplied as a text string; the other parameters
  1430. must be numeric values.
  1431.  
  1432. If you do not supply these parameters, Superbase uses the values currently
  1433. shown in the comms dialog. These default values are stored in the sb.par
  1434. file when you click on OK in the dialog.
  1435.  
  1436. An example of the use of the OPEN COMMS command would be:
  1437.  
  1438.     OPEN COMMS USING 1, 1200, 0, 1, 8, 1, 1, "0932751594"
  1439.  
  1440. Here the command opens a channel for remote transmission to a modem on the
  1441. telephone number 0932 751594
  1442.  
  1443. 2. CLOSE COMMS
  1444.  
  1445. This closes the communications channel and should be executed at the end of
  1446. any operation involving data transfer.
  1447.  
  1448.                 S-34
  1449.  
  1450. 3.COMMS[TEXT]GET stringvar
  1451. This works in a similar way to GET when it is used as a keyboard input
  1452. command. Instead of reading a character from the keyboard, COMMS GET reads
  1453. a character from the comms buffer and stores it in the string variable
  1454. specified. If the buffer is empty it returns a null character. As with GET,
  1455. it doesn't wait for a character to be transmitted, and when the buffer is
  1456. empty it returns a null character. If you want COMMS GET to wait for
  1457. transmission, you need to place it in a loop, as in:
  1458.  
  1459.     lab1: COMMS GET a$: IF a$="" THEN GOTO lab1
  1460.  
  1461. The TEXT parameter limits the range of characters that are returned to
  1462. those with ASCII codes less than 128. Characters whose codes are greater
  1463. than 127 are converted to this range (i.e., Superbase strips off the
  1464. highest bit); for example,  ASCII character 180 would be returned as
  1465. character 52.
  1466.  
  1467. 4. COMMS[TEXT]INPUT stringvar
  1468. This command reads up to 255 characters at a time from the comms buffer
  1469. into the string variable specified. If it finds a line feed character
  1470. (ASCII 10) it only takes the characters up to and including the line feed.
  1471. Otherwise, within the limit of 255, it returns as many characters as there
  1472. are in the buffer. The optional TEXT parameters operates in the same way as
  1473. it does with COMMS GET. It maps characters over 127 onto their ASCII
  1474. equivalents in the range 0 to 127.
  1475.  
  1476. 5. COMMS ? strexpr
  1477. This outputs the characters in the string expression (either a string
  1478. variable or a text string enclosed in quotation marks) through the comms
  1479. channel. For example:
  1480.  
  1481.     COMMS ? "Hello"
  1482.  
  1483. sends the word Hello to the computer at the receiving end.
  1484.  
  1485. 6. COMMS FILE GET strexpr
  1486. Use this command to receive a file under program control. The string
  1487. expression should specify the name under which the file is to be saved.
  1488. However, if the File Header option is On, it will be saved using the name
  1489. under which it was transmitted; so you do not need to supply the file name
  1490. and can just give the empty string. For example:
  1491.  
  1492.     OPEN COMMS 9.9600, 0, 1, 8, 0, 1
  1493.     COMMS FILE GET ""
  1494.     CLOSE COMMS
  1495.  
  1496.                 S-35
  1497.  
  1498. 7. COMMS FILE[?]strexpr
  1499. This command is the program equivalent of transmitting a file using the
  1500. Comms menu option. The string expression should specify the file or files
  1501. that are to be transmitted. For example, to transmit the Address database
  1502. files, you could enter:
  1503.  
  1504.     a$="Address"
  1505.     COMMS FILE ? a$ + ".*"
  1506.  
  1507. REPORT FUNCTIONS
  1508. These functions can only be used with repeated fields occurring in reports
  1509. and transactions (a group of repeated fields in a form), and array
  1510. variables. When a report or a form displays multiple instances of the same
  1511. type of data - for example, the deposits made to a bank in a single month -
  1512. you will usually want to derive totals from the data or to analyze it in
  1513. certain ways. Report functions allow you to do this with a single command.
  1514. Within a program you can use them to total or analyze a range of values
  1515. which have previously been assigned to an array.
  1516.  
  1517. The report functions are:
  1518.  
  1519. SUM
  1520. COUNT
  1521. MIN
  1522. MAX
  1523. MEAN
  1524. VAR
  1525. SD
  1526.  
  1527. Apart from COUNT, which returns the number of instances of the same field
  1528. or the number of array elements, these functions only operate on numeric
  1529. values: the function's argument must be a numeric field or a numeric array.
  1530.  
  1531. There is an important difference between the way the report functions work
  1532. with arrays and with the fields in a transaction form. With arrays, they
  1533. act on all the elements whether they have been assigned a value or not. But
  1534. with transaction forms they only operate on the lines which contain data;
  1535. i.e., COUNT shows the number of transaction lines that are filled and
  1536. ignores blank lines.
  1537.  
  1538.                 S-36
  1539.  
  1540. Parentheses are optional with report functions. To show the total of all
  1541. the occurrences in a transaction form of the field Amoung, you could enter:
  1542.  
  1543.     ? SUM Amount
  1544. or
  1545.     ? SUM (Amount)
  1546.  
  1547. With array variables, you enter the array name of its, own, as in:
  1548.  
  1549.     ? MEAN a%
  1550.  
  1551. If the array has more than one dimension, the function operates on the
  1552. first dimension.
  1553.  
  1554. COUNT
  1555. Purpose
  1556. Returns the number of repeated fields in a report or transaction form. Also
  1557. returns the number of elements in an array.
  1558.  
  1559. SYNTAX
  1560. COUNT (fieldname/array)
  1561.  
  1562. COMMENTS
  1563. As a report function, COUNT can only be used with repeated instances of a
  1564. field or a variable such as occur in reports and transactions or in an
  1565. array. Unlike the other report functions, COUNT works with string, date and
  1566. time fields as well as numeric fields.
  1567.  
  1568. When a calculation variable is replicated as part of a transaction line, it
  1569. is converted into an array. Unlike the other report functions, COUNT works
  1570. with string, date and time fields as well as numeric fields.
  1571.  
  1572. When a calculation variable is replicated as part of a transaction line, it
  1573. is converted into an array variable. In most cases COUNT will be used with
  1574. these types of variables - the arrays that occur in a transaction form
  1575. rather than normal program arrays. If you supply a program array with more
  1576. than one dimension as an argument, COUNT operates on the first dimension.
  1577.  
  1578. When it used to count the fields in a block of transactions, COUNT only
  1579. operates on the lines that contain data. With arrays, however, it gives the
  1580. total number of elements irrespective of whether they have been assigned a
  1581. value.
  1582.  
  1583.                 S-37
  1584.  
  1585. EXAMPLES
  1586.  
  1587. 1 x%=COUNT trans%
  1588. 2 IF COUNT Lastname.Address > 20 THEN...
  1589.  
  1590. MAX
  1591. Purpose
  1592. Returns the maximum value from a range of values.
  1593.  
  1594. SYNTAX
  1595. MAX (fieldname/numarray)
  1596.  
  1597. COMMENTS
  1598. fieldname must be the name of a numeric field which is repeated in a report
  1599. or in a transaction form.numarray much be a numeric array which has been
  1600. defined in a program or as calculation variable in a transaction line. The
  1601. parentheses are optional. See COUNT.
  1602.  
  1603. EXAMPLES
  1604.  
  1605. 1 ? MAX range%
  1606. 2 a%=MAX Score.Results
  1607.  
  1608. MEAN
  1609. Purpose
  1610. Returns the average from a range of numeric values.
  1611.  
  1612. SYNTAX
  1613. MEAN (fieldname/numarray)
  1614.  
  1615. COMMENTS
  1616. fieldname must be the name of a numeric field which is repeated in a report
  1617. or a transaction form.numarray must be a numeric array which has been
  1618. defined in a program or as a calculation variable in a transaction line.
  1619. The parentheses are optional.
  1620.  
  1621.                 S-38
  1622.  
  1623. EXAMPLES
  1624.  
  1625. 1 a%=MEAN age
  1626. 2 DIM m%(10)
  1627.   FOR n%=0 to 10
  1628.   m%(n%)=n%
  1629.   NEXT
  1630.   ? MEAN m%
  1631.  
  1632. MIN
  1633. Purpose
  1634. Returns the minimum value from a range of numeric values.
  1635.  
  1636. SYNTAX
  1637. MIN (fieldname/numarray)
  1638.  
  1639. COMMENTS
  1640. fieldname must be the name of a numeric field which is repeated in a report
  1641. or in a transaction form.numarray must be a numeric array which has been
  1642. defined in a program or as calculation variable in a transaction line. The
  1643. parentheses are optional. See COUNT.
  1644.  
  1645. EXAMPLES
  1646.  
  1647. 1 IF MIN range% < 15 THEN...
  1648. 2 min%=MIN Score.Results
  1649.  
  1650.                 S-39
  1651.  
  1652. SD
  1653. Purpose
  1654. Returns the standard deviation for a range of values.
  1655.  
  1656. SYNTAX
  1657. SD (fieldname/numarray)
  1658. This function provides a measure of the spread of a range of numeric values
  1659. from its mean. It only operates with repeated instances of a numeric field
  1660. or numeric variable such as occur in reports and transaction forms. It can
  1661. also be used with numeric arrays that are defined within a program. See
  1662. COUNT.
  1663.  
  1664. EXAMPLES
  1665.  
  1666. 1 ?SD(n%)
  1667. 2 Deviance%=SD Scores.Results
  1668.  
  1669. SUM
  1670. Purpose
  1671. Returns the total for a range of values.
  1672.  
  1673. SYNTAX
  1674. SUM (fieldname/numarray)
  1675.  
  1676. COMMENTS
  1677. This function can only be used with numeric fields in reports and
  1678. transaction forms, and with numeric arrays defined in programs or
  1679. transactions. See COUNT.
  1680.  
  1681. EXAMPLES
  1682.  
  1683. 1 ? SUM Line_Value
  1684. 2 IF SUM tot% 250 THEN...
  1685.  
  1686. NOTES
  1687. The parentheses are optional.
  1688.  
  1689.                 S-40
  1690.  
  1691. VAR
  1692. Purpose
  1693. Returns the variance from the mean of a range of values.
  1694.  
  1695. SYNTAX
  1696. VAR (fieldname/numarray)
  1697.  
  1698. COMMENTS
  1699. fieldname must be a numeric field whose data is repeated in a report or a
  1700. field in a transaction line.numarray can be a numeric calculation variable
  1701. that occurs in a transaction line or a numeric array in a program. The
  1702. parentheses are optional.
  1703.  
  1704. EXAMPLES
  1705.  
  1706. 1 IF VAR Score.Results > v% THEN...
  1707. 2 x%=VAR scores%
  1708.  
  1709.                 S-41
  1710.  
  1711. 3. FORMS EDITOR
  1712. The Forms Editor has been substantially enhanced for this version of
  1713. Superbase and some of the sections in the Forms Editor User Guide and are
  1714. incorrect. In addition, there are a number of new menu options and new
  1715. attributes which are not covered in the User Guide.
  1716.  
  1717. The new menu options are: Status, Directory Change and Directory List on
  1718. the Project menu; and Field names on the Edit menu.
  1719.  
  1720. In the Attributes window, the Pen selector and the Pen and Paper selector
  1721. have been replaced by a single selector, and there are three new selectors
  1722. for Border, Border Colour, and Currency Format.
  1723.  
  1724. STATUS
  1725. The Status option on the Project menu provides two types of information.
  1726. First it gives information about various aspects of the system. Then if
  1727. there is a form in memory, it displays the details of the form's fields and
  1728. calculation. When you select Status, a dialog appears giving you the choice
  1729. of outputting to the printer or the screen. Click on OK for the printer,
  1730. Cancel for the screen. At the top of the screen, Status shows the following
  1731. details:
  1732.  
  1733. The Superbase files that have been opened
  1734. The current directory
  1735. The number of pages in the current form
  1736. The amount of space remaining on the current disk
  1737. The amount of free memory
  1738.  
  1739. Below this (if there is a form in memory) Status gives the details of the
  1740. form's field and calculation objects. For each object it shows the type
  1741. (either FLD for field or CLS for calculation), the name, and the object's
  1742. attributes. The attributes are listed in four columns. From left to right,
  1743. they are:
  1744.  
  1745. ORDER.
  1746. The object's order entry number.
  1747.  
  1748. JUSTIFICATION
  1749. This can be L, C, or R for left, centre and right justification.
  1750.  
  1751.                 S-42
  1752.  
  1753. READ ONLY.
  1754. If the object has been given the read only attribute, it is indicated by
  1755. the letter R. Otherwise this column is left blank.
  1756.  
  1757. PRINT STATUS.
  1758. If the object's print status is 'on', it is indicated by the letter P.
  1759.  
  1760. If a calculation has a formula attached to it, this is shown in the line
  1761. below.
  1762.  
  1763. LISTING THE DIRECTORY
  1764. The Dir List option lists all the files in the current directory. When you
  1765. select it from the menu, a dialog appears giving you the choice of
  1766. outputting the directory list to the printer or to the screen. For a screen
  1767. display of the directory, click on the Cancel button.
  1768.  
  1769. CHANGING THE DIRECTORY
  1770. Within the Forms Editor you can change the current directory and the
  1771. current drive using the Dir Change option on the Project menu. Directory
  1772. displays a dialog which lists all the directories below the current level;
  1773. i.e. if you are already at the bottom of the directory tree, the dialog
  1774. will be empty.
  1775.  
  1776. You can select a directory from the list in the usual way by clicking on OK
  1777. or double clicking. Selecting '..' (on the Amiga, type '\') takes you to
  1778. the next level up the directory tree.
  1779.  
  1780. If you want to change to a directory in another branch of the tree, you
  1781. will need to type in its name and pathname. For example, if you had a
  1782. directory called images, which was a subdirectory of sbforms, typing
  1783.  
  1784.     \sbforms\images
  1785.     /sbforms/images
  1786.  
  1787. would make Images the current directory.
  1788.  
  1789. To change to another drive, type in the drive name - a:, b:, c:, or d:.
  1790. (DF0:, DF1:,  DH0: or DJ0:)
  1791.  
  1792. After typing in a directory name or a drive name, click on OK or press
  1793. Return.
  1794.  
  1795.                 S-43
  1796.  
  1797. FIELD OPTIONS
  1798. There are two options governing the way a field is added to a page: Field
  1799. names on the Edit menu and Field borders which is available from the
  1800. Attributes window.
  1801.  
  1802. If you set the Field names option, the name of the field is added to the
  1803. page as a text object in the standard system font. It is placed at the left
  1804. of the field box at the same time as the field is added to the page.
  1805.  
  1806. Field borders are treated as an attribute of a field and are represented in
  1807. the Attributes window by the picture frame symbol (see next section). If
  1808. this attribute is set, the Forms Editor draws the border of the field box
  1809. with a solid line. By default, this attribute is not set, and the field box
  1810. is drawn with a dotted line. If you print a form or load a form from within
  1811. Superbase,  the field will be shown with its border; the dotted lines
  1812. around a field box only appear in the Forms Editor itself.
  1813.  
  1814. Like the other attributes, Field borders can be altered at any time - you
  1815. can assign a border or remove it from a field by selecting the field and
  1816. then clicking in picture frame symbol.
  1817.  
  1818. ATTRIBUTES
  1819. COLOUR MODES
  1820. In the current version of the Forms Editor, the Pen selector and the Pen
  1821. and Paper selector in the Attributes window have been merged. There is now
  1822. just one box to control both colour modes. By default, the Pen colour mode
  1823. is selected; when you highlight the box, Pen and Paper is selected.
  1824.  
  1825. CURRENCY FORMAT
  1826. Another new feature in the Attributes window is the currency format
  1827. selector,  represented by the dollar sign. Assigning this attribute to
  1828. numeric calculations ensures that they take the following format when their
  1829. results are displayed in Superbase: numbers are right aligned and expressed
  1830. to two decimals places; any leading zeros are removed.
  1831.  
  1832.                 S-44
  1833.  
  1834. BORDER
  1835. This attribute is represented by the picture frame icon. When it is set,
  1836. areas and fields are drawn with a border. With areas, the border can be
  1837. treated as a box. Although you can't detach it from the area, you can set
  1838. its thickness and pattern in the same way as for boxes and lines. Field
  1839. borders are always drawn with a thin solid line and cannot be altered.
  1840.  
  1841. BORDER COLOUR
  1842. The box to the right of the picture frame icon controls the colour of a
  1843. border. To set the colour, first click in this box, then click in one of
  1844. the boxes in the colour panel.
  1845.  
  1846. You can set the border colour for both areas and fields.
  1847.  
  1848. SELECTING MULTIPLE OBJECTS
  1849. There are two ways of selecting a group of objects. With the first, you
  1850. hold the Shift key down and click once on each object in turn. Click on an
  1851. object again to deselect it from the group.
  1852.  
  1853. The second way involves drawing a box around the objects that are to be
  1854. selected. Start by pressing the Ctrl key, the click in an empty space just
  1855. above and to the left of the group. Now drag the dotted outline of a box so
  1856. that it encloses the group. Click once to select all the objects in the
  1857. box.
  1858.  
  1859. In order to deselect an object or a group of objects double click on part
  1860. of the page that is not occupied by any object.
  1861.  
  1862.                 S-45
  1863.  
  1864. PRINTING FORMS
  1865. COPIES
  1866. This allows you to print up to 99 copies of a form. Click in the Copies box
  1867. to activate the cursor and enter the number of copies required.
  1868.  
  1869. FIELD NAMES
  1870. This option determines whether the field names on a form are printed or
  1871. not. If you turn the Field name button off - by clicking in it - the Field
  1872. character box will become active. Use this to specify the character that
  1873. will be printed in the field boxes in place of the field names. Initially,
  1874. the character shown is the letter X. To specify another character (the
  1875. space character, for example) click in the box to activate its cursor,
  1876. delete the letter X, and enter the character required.
  1877.  
  1878. GENERATING REPORTS
  1879. FORMATTING REPORT OUTPUT
  1880. Calculations are especially useful for formatting text and numbers in the
  1881. report output. Thus to format a numeric field, you can use the function
  1882. STR$. The field should be included in a calculation formula instead of
  1883. being added to the form as a separate object. For example, the calculation
  1884. Balance$ could be used to format the numeric field Balance, using a formula
  1885. like this:
  1886.  
  1887.     STR$(Balance, "$999999.99")
  1888.  
  1889. Another example, which shows how text can be formatted, would be a formula
  1890. such as:
  1891.  
  1892.     Firstname + " " + Lastname
  1893.  
  1894. Here the formula ensures that first and last names are correctly spaced in
  1895. the report output.
  1896.  
  1897. PAGE NUMBER
  1898. You can enter page numbers on the report using the system variable PG. When
  1899. you print the report, Superbase assigns a value of one to this variable and
  1900. then updates it by one every time a page is printed.
  1901.  
  1902. Typically, PG would be entered in a calculation formula, and the
  1903. calculation would be placed in the Heading box. For example, the formula
  1904. could be:
  1905.  
  1906.     RIGHT$(STR$(PG, 2))
  1907.  
  1908.                 S-46
  1909.  
  1910. TRANSACTION HANDLING
  1911. The simplest way of describing transactions is as a set of repeated fields
  1912. in a form. Transactions allow the user to display data from multiple
  1913. records in the same file and at the same time. Typically, each transaction
  1914. would be a row of data drawn from several fields in a single record.
  1915.  
  1916. The other key feature of transactions is that each set must be linked to a
  1917. single record in another file. A form which is designed to process
  1918. transactions - referred to here as a transaction form - must be based on at
  1919. least two files,  with one acting as the master file. The relation between
  1920. a record in the master file and the records in a set of transactions is
  1921. always 'one to many'.
  1922.  
  1923. A TRANSACTION FORM EXAMPLE
  1924. Let's consider an example of a database application for cataloging a book
  1925. collection. It uses two files, Authors and Titles. The Authors file stores
  1926. the name and other details of all the authors represented in the
  1927. collection, using one record for each author. The records in the Titles
  1928. file store the details of each book, such as its title, subject matter, and
  1929. publisher. In addition, the records in both files contain an alphanumeric
  1930. code (the author code) which links the books to their authors.
  1931.  
  1932. This way of organizing the data is far more flexible than a system which
  1933. uses a single file to catalogue the books. It makes it easy to design a
  1934. form which displays the authors and a list of their books on screen at the
  1935. same time. The data would be structured as follows:
  1936.  
  1937.     Author's name, Author code
  1938.         Title, Subject, Publisher
  1939.         Title, Subject, Publisher
  1940.         Title, Subject, Publisher
  1941.  
  1942. If you clicked on the next record button, Superbase would read in the next
  1943. author in alphabetical order followed by a variable number of lines, one
  1944. for each of the author's books. The fields from a record in the Titles file
  1945. are treated as a single transaction; a set of transactions represents all
  1946. the books written by a particular author.
  1947.  
  1948. There is an important point to made about this example which applies to
  1949. transactions in general. All the records in a set of transactions have one
  1950. thing in common: the author's code number. Although it is not part of the
  1951. transaction line, it is this field that defines a number of records as a
  1952. set of transactions and links them to the record in the Author file.
  1953.  
  1954.                 S-47
  1955.  
  1956. Provided a transaction form establishes this link, it is also possible to
  1957. include fields from other files in the transaction line; in this example,
  1958. each transaction line could show the publisher's address by looking it up
  1959. in an address file.
  1960.  
  1961. SETTING UP A TRANSACTION FORM
  1962. When you are creating a transaction form, Replicate is the option you use
  1963. to define a number of fields and calculations as a set of transactions. As
  1964. a prerequisite, you need to select these elements of a transaction as a
  1965. multiple group. Then select Replicate from the Edit menu.
  1966.  
  1967. The Forms Editor displays the Replicate dialog. You will see four input
  1968. boxes and below them two buttons. In the boxes, you should enter numeric
  1969. values for the following features:
  1970.  
  1971. Transaction lines
  1972. Line spacing
  1973. Transaction columns
  1974. Column spacing
  1975.  
  1976. The number of transaction lines specifies how many times the selected group
  1977. of fields and calculations will be replicated down the page; i.e., the
  1978. number of transactions that will appear on the form.
  1979.  
  1980. Line spacing determines the number of empty lines between transactions down
  1981. the page. Enter a value of 0, if you wish the transactions to be placed one
  1982. on top of the other.
  1983.  
  1984. The transaction columns box allows you to specify whether the transactions
  1985. are to be arranged in a single column or across the screen in two or more
  1986. columns. The total number of transactions on the form will the number in
  1987. this box times the number in the transaction lines box. If you want the
  1988. form to have just one column of transactions, enter a value of 1.
  1989.  
  1990. Column spacing only needs to be specified if you are using more than one
  1991. transaction column. The number in this box determines how many spaces will
  1992. be placed between each transaction across the page when there are more than
  1993. one to a line.
  1994.  
  1995. DOWN/ACROSS. These buttons determine the entry order for transactions. If
  1996. the form has only one column of transactions, they will automatically be
  1997. numbered from top to bottom. With multiple columns, you have the option of
  1998. setting the entry order from top to bottom (DOWN) or left to right
  1999. (ACROSS).
  2000.  
  2001.                 S-48
  2002.  
  2003. Suppose, for example, the form has 8 transactions which are arranged like
  2004. this:
  2005.  
  2006.     Trans                Trans
  2007.     Trans                Trans
  2008.     Trans                Trans
  2009.     Trans                Trans
  2010.  
  2011. If you click on the DOWN button, the entry order will be:
  2012.  
  2013.     1                5
  2014.     2                6
  2015.     3                7
  2016.     4                8
  2017.  
  2018. Clicking on the ACROSS button would ensure the entry order was as follows:
  2019.  
  2020.     1                2
  2021.     3                4
  2022.     5                6
  2023.     7                8
  2024.  
  2025. Note that this option only determines the entry order for the transaction
  2026. line as a whole. It doesn't affect the order of the fields within a
  2027. transaction (see the next section).
  2028.  
  2029. CALCULATIONS
  2030. A transaction line may also contain form calculations. These must be tied
  2031. to the fields in the line; in other words, the calculation formulas must
  2032. include a reference to one or more transaction fields.
  2033.  
  2034. Calculations are replicated at the same time as the fields. You simply
  2035. select them as part of the multiple group.
  2036.  
  2037. The Forms Editor turns repeated calculations into an array. Remember that a
  2038. form calculation can be treated as a program variable. When you replicate a
  2039. calculation it becomes an array variable; for example, replicating the
  2040. calculation tot% five times creates an array with five elements, tot%(0)to
  2041. tot%(4).
  2042.  
  2043. NOTE: IF THE CALCULATION SENDS ITS RESULT TO A FIELD, THE FIELD MUST BE ONE
  2044. THAT OCCURS IN THE TRANSACTION LINE. IT SHOULD NOT POST DATA TO FIELDS IN
  2045. OTHER FILES.
  2046.  
  2047.                 S-49
  2048.  
  2049. SETTING LINKS
  2050. For a transaction form to work, you must establish a link between a field
  2051. in the master file and a field in the transaction line using the Link
  2052. option on Set menu. Thereafter, you can set other links, but these must
  2053. always be between fields in a 'one to one' relation. In other words, you
  2054. cannot set up forms where a transaction has further transactions of its
  2055. own.
  2056.  
  2057. COPYING FIELDS AND CALCULATIONS
  2058. Transactions are created by repeating fields (and calculations) with the
  2059. Replicate option. If you repeat a field using some other technique - by
  2060. copying it or by adding it to the page a second time - it will only show
  2061. the data for the current record and the current transaction line.
  2062.  
  2063. Usually, this field would be marked as Read Only and would be used to
  2064. display a full description of data which is truncated in the transaction
  2065. line.
  2066.  
  2067. USING REPORT FUNCTIONS
  2068. The report functions can be applied to the fields and calculations that
  2069. occur in transactions. They are used in formulas which are attached to
  2070. calculations outside the transaction block. An example, would be the
  2071. formula:
  2072.  
  2073.     SUM Annual_interest
  2074.  
  2075. This returns the total value of the field Annual_interest in all the
  2076. transaction lines that contain data. Note that the report function do not
  2077. operate on empty transaction lines.
  2078.  
  2079. Other examples are:
  2080.  
  2081.     COUNT Stockcode
  2082.     MEAN
  2083.     MAX
  2084.     MIN
  2085.  
  2086. Apart from COUNT, the report functions can only be used with numeric fields
  2087. and calculation variables.
  2088.  
  2089. Report functions can also be used in DML programs. As well as working with
  2090. transaction items, they can be applied to the arrays which are defined
  2091. within a program. See the entries for these functions in Chapter 5, DML
  2092. User Guide.
  2093.  
  2094.                 S-50
  2095.  
  2096. PROGRAMMING TRANSACTIONS
  2097. One of the advantages of using a form to process transactions is that it
  2098. does not require any programming. However, transaction forms on their own
  2099. will only take you so far. For more complex applications, you will need to
  2100. combine the form's built-in processing facility with a program. Superbase
  2101. provides the following commands for handling transactions:
  2102.  
  2103.     SELECT FORM ROW
  2104.     UPDATE FORM ROW
  2105.     ENTER
  2106.  
  2107. When they are used with the ROW keyword, these commands give the programmer
  2108. control over input and output to the individual lines in a set of
  2109. transactions. For more details, see the entries for these commands in the
  2110. section headed DML Keywords.
  2111.  
  2112. SINGLE FILE APPLICATIONS
  2113. By definition, transactions can only be defined in a multi-file form.
  2114. However, if you replicate fields on a form which uses just one file, they
  2115. still share some of the features of transactions.
  2116.  
  2117. A form like this will display multiple records from one file in a similar
  2118. way to Superbase's form view option. But it is has the advantage of
  2119. allowing you to click on any of the lines on screen. The line then becomes
  2120. the current record. You can use this feature for two purposes: as a way of
  2121. selecting a record from a list, and as a way of entering data from multiple
  2122. records at the same time.
  2123.  
  2124. SETTING THE ENTRY ORDER FOR TRANSACTIONS
  2125. The Order option on the Set menu allows you to define the entry order for
  2126. the fields and calculations in a transaction in the same way as for
  2127. non-transactional fields. However, there are a number of restrictions that
  2128. apply when you are setting the entry order for the elements of a
  2129. transaction. The entry order sequence within a transaction is the same for
  2130. all the transactions on the form; i.e., if you specify for one transaction
  2131. that data is entered from left to right, this will also be the case for the
  2132. other transactions. This means that when you are setting the entry order,
  2133. you should concentrate only on the first transaction. Any changes you make
  2134. will then be automatically repeated in the rest of the transactions.
  2135.  
  2136.                 S-51
  2137.  
  2138. The entry order for the transactions treated as units is set in the
  2139. Replicate dialog and cannot be altered. In other words, the order numbers
  2140. of the elements in one transaction will always remain the same relative to
  2141. the elements in the other transaction.
  2142.  
  2143. If you alter the order of a transaction element with respect to other
  2144. fields on the form, all the transaction order numbers will be altered at
  2145. the same time (although they remain the same relative to each other).
  2146.  
  2147. To illustrate these points, let's consider an example involving a form with
  2148. four transactions each containing three fields. In addition to the
  2149. transactions,  there is one non-transaction field on the form above the
  2150. transaction block. The fields are arranged like this:
  2151.  
  2152.                 Field_a
  2153.     Field_b            Field_c            Field_d
  2154.     Field_b            Field_c            Field_d
  2155.     Field_b            Field_c            Field_d
  2156.     Field_b            Field_c            Field_d
  2157.  
  2158. Field_a stands on its own; the other fields are elements in the four
  2159. transaction lines. Initially, the entry order is as follows:
  2160.  
  2161.                 1
  2162.     2            3            4
  2163.     5            6            7
  2164.     8            9            10
  2165.     11            12            13
  2166.  
  2167. Suppose you wanted to change this order so that the user was required to
  2168. enter data in the second field (Field_c) in each transaction line before
  2169. the first field. To do this you would click once in Field_c on the first
  2170. transaction line, and then again on Field_b. The entry order would now be:
  2171.  
  2172.                 1
  2173.     3            2            4
  2174.     6            5            7
  2175.     9            8            10
  2176.     12            11            13
  2177.  
  2178.                 S-52
  2179.  
  2180. You might also want to ensure that data was entered in the transactions
  2181. before Field_a. In this case you would need to select the Order option
  2182. again, and then click twice on Field_c in the first transaction. The entry
  2183. order would then be:
  2184.  
  2185.                 13
  2186.     2            1            3
  2187.     5            4            6
  2188.     8            7            9
  2189.     11            10            12
  2190.  
  2191. EDITING TRANSACTION FORMS
  2192. Despite their greater complexity, transactions can be edited in the Forms
  2193. Editor in the same way as other objects on the form. Editing a transaction
  2194. line includes deleting fields, adding new fields, and redefining the
  2195. arrangement of a transaction block by selecting Replicate again.
  2196.  
  2197. Before editing a transaction, you need to select the item or items you wish
  2198. to change. This has the effect of selecting all the items of the same type
  2199. in the transaction block; i.e., selecting a filed in the first line
  2200. automatically selects the same field in the other lines.
  2201.  
  2202. To add a field, first place it on the form, select it in the usual way, and
  2203. then select Replicate. It is not necessary to select the fields that are
  2204. already defined as transaction elements; after you have redefined the
  2205. transaction block using Replicate, the new field will be incorporated in
  2206. the transactions.
  2207.  
  2208. EDITING TRANSACTION ENTRIES
  2209. Superbase provides three editing controls for use when you are entering
  2210. data in a new transaction form.
  2211.  
  2212. Ctrl D deletes the transaction line at the cursor, and closes up any line
  2213. above and below. Ctrl N inserts a new blank line on the line above the
  2214. cursor. Pressing the Escape key clears the field where the cursor is
  2215. currently positioned. Pressing it a second time, then clears all the fields
  2216. in the transaction line.
  2217.  
  2218. Note that these controls also have an effect on existing data, but it is
  2219. confined to the screen display. If you use Ctrol D to delete a line in a
  2220. set of transactions and then save the form, the data in the corresponding
  2221. fields will not be deleted at the record and file level.
  2222.  
  2223.                 S-53
  2224.  
  2225. 4. OTHER FEATURES
  2226. Program identification. The program editor now allows you to indent lines
  2227. in order to improve legibility or to exhibit the structure of the program
  2228. more clearly.
  2229.  
  2230. Outputting to the screen. In earlier versions of Superbase, placing a
  2231. semicolon at the end of an expression list with the ? command had the
  2232. effect of suppressing output to the screen; the expressions were not
  2233. displayed on screen until a new line was entered. In this version, the
  2234. screen is updated immediately irrespective of how the output is formatted.
  2235. For example:
  2236.  
  2237.     ? "one", "two", "three";
  2238.  
  2239. would display the expressions "one" "two" "three" straight away. The &
  2240. output format parameter. This parameter has now been modified to allow you
  2241. to specify the number of decimal places in the format when you are
  2242. outputting the results of calculations in a query or from a program. As
  2243. before,  & followed by an integer sets the maximum length for the text
  2244. strings or text fields. When it is followed by a decimal number, the &
  2245. parameter specifies the number of digits that will be displayed before and
  2246. after the decimal point. For example:
  2247.  
  2248.     ? &4.3 (Numfield/3)
  2249.  
  2250. ensures that the result of the calculation (Numfield/3) will be displayed
  2251. to three decimal places and with four digits before the decimal point.
  2252.  
  2253. The close gadget is disabled while a program is running Query Language
  2254. Commands. In the Keyword Reference Guide under the entry for SELECT, the
  2255. description given of the way the TO device options works is misleading. If
  2256. used, this option must be entered at the end of a query section,  and it
  2257. takes the place of the END SELECT statement. The correct syntax for the
  2258. SELECT command is:
  2259.  
  2260.     SELECT[params]fields: [statements]: END SELECT/TO
  2261.     device
  2262.  
  2263. An example would be:
  2264.  
  2265.     SELECT Firstname, Lastname, City
  2266.     WHERE Lastname LIKE["a-e"*]
  2267.     TO "aaa.asc"
  2268.  
  2269.                 S-54
  2270.  
  2271. The last line in this query section ensures that output is sent to
  2272. "aaa.asc",  an ASCII file on disk.
  2273.  
  2274. Date Format I. You can now specify a date format in which single digit days
  2275. and months are given a leading zero. This is done by replacing the first
  2276. 'd' in the format string with '0'; for example, instead of:
  2277.  
  2278.     DATEBASE "dd mmmm yyyy"
  2279.  
  2280. you would enter:
  2281.  
  2282.     DATEBASE "Od mmmm yyyy"
  2283.  
  2284. Date Format II. Any of the existing date formats that make use of spaces as
  2285. separators are now also available without spaces. For example:
  2286.  
  2287.     DATEBASE "dd mm yy"
  2288.  
  2289. which formate the date as 6 10 87, can also be entered as:
  2290.  
  2291.     DATEBASE "ddmmyy"
  2292.  
  2293. This would format the date as 61087.
  2294.  
  2295. Note that these new formats cannot be set from the date format dialog. If
  2296. you wish to set a date field to one these formats, use the MODIFY command
  2297. or edit the field definition in the '.sbd' file.
  2298.  
  2299. Time Format. Unlike the date format, the time format is not saved in the
  2300. SB.par file. If you alter the default time format in the date/time format
  2301. dialog (selecting it from the Set menu), the your new setting will only
  2302. apply for the current session. To set the time format so that it also
  2303. applies the next time you load Superbase, you should use the DATEBASE
  2304. command in conjunction with the Start program - define the format you
  2305. require with DATEBASE and insert the command in the Start program.
  2306.  
  2307. Draft Printing in the Forms Editor. In Draft mode, the Forms Editor now
  2308. prints boxes and lines as well as text.
  2309.  
  2310. Atari versions of Superbase now accept '.gem' image files in addition to
  2311. the other file formats listed in the Atari appendix.
  2312.  
  2313.                 S-55
  2314.  
  2315. 5. KEY CONTROLS
  2316.  
  2317. MENU SELECTION
  2318. The '^' character represents the Ctrol key. Thus ^B indicates that you
  2319. should press Ctrl and the letter B at the same time. On the Amiga, the
  2320. right Amiga key is the equivalent of the Alt key used in GEM versions of
  2321. Superbase.
  2322.  
  2323. KEY COMBINATION        MENU OPTION
  2324.  
  2325. Alt/Amiga O        Project Open File
  2326. Alt/Amiga I        Project Open Index
  2327. Alt/Amiga C        Project Close Fields
  2328. Alt/Amiga N        Record New
  2329. Alt/Amiga E        Record Edit
  2330. Alt/Amiga B        Record Batch
  2331. Alt/Amiga S        Record Save
  2332. Alt/Amiga T        Set Table View
  2333. Alt/Amiga R        Set Record View
  2334. Alt/Amiga F        Set Form View
  2335. Alt/Amiga D        System Directory List
  2336. Alt/Amiga X        System Directory Change
  2337. Alt/Amiga Y        System Status File
  2338. Alt/Amiga Z        System Status System
  2339. Alt/Amiga L        System List
  2340. Alt/Amiga A        Program Command
  2341.  
  2342. RECORD SELECTION
  2343. These keys are the equivalents of the record selection buttons on the
  2344. control panel. They do not operate when a cursor for data or text input is
  2345. on screen.
  2346.  
  2347. KEY                RECORD SELECTION BUTTON
  2348.  
  2349. Cursor right arrow        Next record
  2350. Cursor left arrow        Previous record
  2351. Cursor up arrow            Current record/previous page in a form
  2352. Cursor down arrow        Current record/next page in a form
  2353. Shift up arrow (Amiga)        Rewind
  2354. Shift down arrow (Amiga)    Fast Forward
  2355. Space bar            Pause
  2356. Shift left arrow (Amiga)    First Record
  2357. Insert (Atari)            First Record
  2358. Shift right arrow (Amiga)    Last Record
  2359.  
  2360.                 S-56
  2361.  
  2362. Clr Home (Atari)        Last Record
  2363. ^C                Stop
  2364. ?                Key Lookup
  2365. =                Filter
  2366. *                Camera
  2367.  
  2368. DATA ENTRY
  2369. These controls are used for editing the data you enter in fields and the
  2370. lines you enter in dialogs; e.g., filters, query command lines, formulas,
  2371. file and field names.
  2372.  
  2373. KEY/KEY COMBINATION        FUNCTION
  2374.  
  2375. Escape (Atari)        Clear line.
  2376. ^X (Amiga)        Clears line.
  2377. Alt/Amiga U        Undoes last deletion.
  2378. Cursor right arrow    Moves the cursor one character to the right.
  2379. Cursor left arrow    Moves the cursor one character to the left.
  2380. Home (Atari)        Moves the cursor to the start of the line.
  2381. Shift left arrow (Amiga)Moves the cursor to the start of the line.
  2382. Insert (Atari)        Moves the cursor to the end of the line.
  2383. Shift right arrow (Amiga)
  2384.             Moves the cursor to the end of the line.
  2385. Del            Deletes character to the right of the cursor.
  2386. Backspace        Deletes character to the left of the cursor.
  2387. Tab            Moves the cursor eight characters to the right.
  2388. Shift Tab        Moves the cursor eight character to the left.
  2389. Return            Moves the cursor to the next field down or, on
  2390.             a form, to the next field in entry order.
  2391. Shift Return        Moves the cursor to the field above or, on a
  2392.             form, to the previous field in entry order.
  2393.  
  2394. TEXT AND PROGRAM EDITING
  2395.  
  2396. KEY/KEY COMBINATION        FUNCTION
  2397.  
  2398. Shift up arrow (Amiga)    Scrolls window up text or program by one full
  2399.             screen.
  2400. Shift down arrow (Amiga)Scrolls window down text or program by one
  2401.             full screen.
  2402. Cursor left arrow    Moves cursor to next character to the left.
  2403. Cursor right arrow    Moves cursor to next character to the right.
  2404. Cursor up arrow        Moves cursor to the character in the same
  2405.             column on the line above.
  2406.  
  2407.                 S-57
  2408.  
  2409. Cursor down arrow    Moves the cursor to the character in the same
  2410.             column on the line below.
  2411. ^B            Takes the cursor to the first line in the
  2412.             text/program.
  2413. ^G            Takes the cursor to the last line in the
  2414.             text/program.
  2415. Shift left arrow (Amiga)
  2416.             Moves the cursor to the beginning of the
  2417.             current line.
  2418. Home (Atari)        Moves the cursor to the beginning of the
  2419.             current line.
  2420. Shift right cursor (Amiga)
  2421.             Moves the cursor to the end of the current line
  2422. Insert (Atari)        Moves the cursor to the end of the current line
  2423. Tab            Moves the cursor eight characters to the right.
  2424. Return            In Overwrite mode moves the cursor to the
  2425.             start of the next line.
  2426. Shift Tab        Moves the cursor eight characters to the left.
  2427. Backspace        Deletes the character to the left of the cursor
  2428. Del            Deletes the character to the right of the
  2429.             cursor.
  2430. ^D            Deletes the current line.
  2431. ^E            Deletes text from the cursor to the end of the
  2432.             line.
  2433. ^X            Deletes all the text on the line leaving a
  2434.             blank line.
  2435. ^U            Undoes the last deletion or insertion.
  2436. ^N            Creates a new line below the cursor.
  2437. ^S            Splits line at the point where the cursor is.
  2438. Return            Has same effect as ^S but in Insert mode only.
  2439.             Text Editor only.
  2440. ^A            Closes up a line after it has been split.
  2441. ^V            Toggles Insert and Overwrite modes on and off.
  2442.             Text Editor Only.
  2443. ^L            Marks the current line for copying.
  2444. ^R            Copies the line that has been marked by ^L, 
  2445.             inserting it below the cursor.
  2446. ^F            Reformats paragraph to the current ruler 
  2447.             settings. Text Editor only.
  2448. Alt/Amiga P        Toggles the Plain type style on and off. Text
  2449.             Editor only.
  2450. Alt/Amiga B        Toggles Bold on and off. Text Editor only.
  2451. Alt/Amiga U        Toggles Underline on and off. Text Editor only.
  2452. Alt/Amiga I        Toggles Italic on and off. Text Editor only.
  2453. Alt/Amiga H        Displays the Help window.
  2454.  
  2455.                 S-58
  2456.  
  2457. INDEX
  2458.  
  2459. & 1-54                    E
  2460.                     Editing Transactions 1-53
  2461. A                    ENTER 1-17
  2462. ASCII delimited files            Export 1-9, 1-20
  2463.   Importing 1-5                   File types 1-9
  2464. Attributes 1-44
  2465.   Colour modes 1-44            F
  2466.   Border 1-45                Field borders 1-44
  2467.   Border Colour 1-45            Field names 1-44
  2468.   Currency format 1-44            Field options 1-44
  2469.                     Field separators 1-7
  2470. B                    File Conversion 1-6
  2471. BLANK 1-15                Formatting report output 1-46
  2472. Border 1-45
  2473. Border Colour 1-45            I
  2474.                     Import 1-5, 1-23
  2475. C                      File Formats 1-5
  2476. CLOSE COMMS 1-34            Import file types 1-5
  2477. Colour modes 1-44
  2478. Comms 1-12                K
  2479. COMMS? 1-35                Key controls 1-56
  2480. COMMS COMMANDS 1-34            Keyboard equivalents 1-1, 1-56
  2481. COMMS FILE 1-36                
  2482. COMMS GET 1-35                L
  2483. COMMS INPUT 1-35            LOAD SET 1-25
  2484. COUNT 1-37                Logistix files 1-6
  2485. Currency format 1-44            Lookup 1-3
  2486.                     Lotus files 1-6
  2487. D
  2488. Date format 1-55            M
  2489. dBase conversion 1-20            Mail Merge 1-11
  2490. Dbase files 1-5                  Blank lines 1-11
  2491. DIF files 1-6                  Program commands 1-11
  2492. Dir Change 1-43                  Programming 1-11
  2493. Dir List 1-43                  Variables 1-11
  2494. Draft printing 1-55
  2495.  
  2496.                 INDEX-1
  2497.  
  2498. ============================================================================
  2499.      DOCS PROVIDED BY RAP AND -+*+-THE SOUTHERN STAR-+*+- for M.A.A.D.                                                               
  2500. ============================================================================
  2501.  
  2502.